std::tuple이란?
- 기존에 다른 데이터 타입의 값 2개를 저장하기 위해 pair를 사용했지만, first와 second 두 개의 요소만 관리할 수 있었다.
- C++11부터 STL에서 tuple을 제공하여 다수의 요소를 관리할 수 있는 tuple을 제공한다.
- <tuple>에 정의되어 있다.
기본 사용법
#include <tuple>
#include <iostream>
int main() {
// 다양한 타입의 요소들을 포함하는 튜플 생성
std::tuple<int, double, std::string> myTuple(1, 3.14, "Hello");
// 튜플의 요소에 접근
std::cout << "Integer: " << std::get<0>(myTuple) << std::endl;
std::cout << "Double: " << std::get<1>(myTuple) << std::endl;
std::cout << "String: " << std::get<2>(myTuple) << std::endl;
return 0;
}
별 특이한 점은 없지만, std::get을 사용할 수 있다.
std::get
std::get 템플릿 함수를 이용해서 튜플의 요소에 접근할 수 있다(인덱스를 통해 접근)
std::get<0>(myTuple); // 첫 번째 요소
std::get<1>(myTuple); // 두 번째 요소
std::get<2>(myTuple); // 세 번째 요소
std::make_tuple
주어진 값들로 초기화된 튜플을 리턴
auto t3 = std::make_tuple(2, 2.71, "World");
std::tie
기존 변수들을 튜플의 요소에 바인딩해준다
int a;
double b;
std::string c;
std::tie(a, b, c) = t3;
std::tuple_cat()
두 개의 tuple을 합친다
auto t1{std::make_tuple(10, "Name", 'a')};
auto t2{std::make_tuple("Hello", 20, 'b')};
auto t3{std::tuple_cat(t1, t2)};
EXPECT_TRUE(
std::get<0>(t3) == 10 &&
std::get<1>(t3) == "Name" &&
std::get<2>(t3) == 'a' &&
std::get<3>(t3) == "Hello" &&
std::get<4>(t3) == 20 &&
std::get<5>(t3) == 'b'
);
'Data Structure > C++ STL' 카테고리의 다른 글
[C++ STL] std::string (0) | 2024.06.30 |
---|---|
[C++ STL] std::pair (0) | 2024.06.30 |
[C++ STL] 3.4 C++ 해시 테이블 (0) | 2024.06.23 |
[C++ STL] 2.6 그래프(graph) (0) | 2024.06.21 |
[C++ STL] 2.5 힙(Heap) (0) | 2024.06.21 |