끄적이는 메모장

[C++11] tuple 본문

C, C++, C#/C++ 공부

[C++11] tuple

밥보92 2018. 6. 7. 15:03
반응형

# tuple

 

std::pair의 경우 두 개의 element를 한번에 담을 수 있는 object 였다.

std::tuple의 경우는 pair가 확장되어 이종의 타입의 element를 갯수 제한 없이 담을 수 있는 object 이다.

 

# std::make_tuple

 

주어진 element로 부터 type을 결정하여 tuple을 생성한다

 

auto tuple1 = std::make_tuple(1, 'a', 2.0);

// tuple <int, char, double>

 

# std::get

 

주어진 tuple에서 위치를 기반으로 element 값을 반환한다.

 

auto tuple2 = std::make_tuple(100, 'A', 3.0);

 

auto get1 = std::get<0>(tuple2); // 100

std::get<1>(tuple2) = 'B' // tuple2 = 100, 'B', 3.0

 

# std::tie

 

특정 tuple에서 element의 위치에 기반한 참조를통해 값을 한번에 추출한다.

 

auto tuple3 = std::make_tuple(1, 10, 100);

 

int a,b,c;

std::tie(a,b,c) = tuple3; // a = 1, b= 10, c = 100

 

만약 tuple의 특정 위치의 값은 참조를 원하지 않는다면 std::ingnore를 사용해준다.

 

auto tuple4 = std::make_tuple(1, 5, 10 ,15);

 

int a,b;

std::tie(a, std::ignore, std::ignore, b) = tuple4 // a= 1, b = 15

 

 

 

반응형