Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
std::tuple
tuple 이란?
2개 이상의 값을 하나의 변수로 묶을 수 있게 해주는 library
std::tuple<int, float, std::string> t1
= std::tuple<int, float, std::string>( 1, 3.0f, "tuple" );
어떻게 만드나?
선언 후 var()에 바로 값을 대입하거나
std::tuple<int, float, std::string> t1( 1, 3.0f, "tuple is good" );
선언과 동일한 tuple형을 만들어서 대입하거나,(아래 코드)
make_tuple로 알아서 값을 만들어 넣거나 할 수 있음
std::make_tuple( 1, 3.0f,"tuple is good" );
어떻게 만드나?
auto 도 사용가능,
심지어는 auto 와 make_tuple로 아래 t4 같은 변태조합도 가능함.
(자료형이 어떻게 될 지 모르니 저렇게는 안쓰는게 좋을 듯...)
어떻게 쓰나?
std::get<#>(var) 식으로 선언된 자료의 순서를 이용해 꺼내올 수 있다.
자료 수정 역시 std::get<#>(var) = var2 식으로 할 수 있다.
tuple에 원소가 몇 개 있는지는 어떻게?
std::tuple_size<decltype(var)>::value 로 구할 수 있다.
반환 값은 unsigned 이다.
그 외..
참조 데이터를 가지는 tuple을 만들려면
std::tie(var1, var2 .. ) 를 사용한다.
그 외..
tuple을 변수들에 한 번에 담으려면
std::tie(var1, var2 .. ) 를 거꾸로 사용한다.
그 외..
tuple들을 합치려면 std::tuple_cat(tuple1, tuple2)을 사용한다.

More Related Content

C++11 Tuple

  • 2. tuple 이란? 2개 이상의 값을 하나의 변수로 묶을 수 있게 해주는 library std::tuple<int, float, std::string> t1 = std::tuple<int, float, std::string>( 1, 3.0f, "tuple" );
  • 3. 어떻게 만드나? 선언 후 var()에 바로 값을 대입하거나 std::tuple<int, float, std::string> t1( 1, 3.0f, "tuple is good" ); 선언과 동일한 tuple형을 만들어서 대입하거나,(아래 코드) make_tuple로 알아서 값을 만들어 넣거나 할 수 있음 std::make_tuple( 1, 3.0f,"tuple is good" );
  • 4. 어떻게 만드나? auto 도 사용가능, 심지어는 auto 와 make_tuple로 아래 t4 같은 변태조합도 가능함. (자료형이 어떻게 될 지 모르니 저렇게는 안쓰는게 좋을 듯...)
  • 5. 어떻게 쓰나? std::get<#>(var) 식으로 선언된 자료의 순서를 이용해 꺼내올 수 있다. 자료 수정 역시 std::get<#>(var) = var2 식으로 할 수 있다.
  • 6. tuple에 원소가 몇 개 있는지는 어떻게? std::tuple_size<decltype(var)>::value 로 구할 수 있다. 반환 값은 unsigned 이다.
  • 7. 그 외.. 참조 데이터를 가지는 tuple을 만들려면 std::tie(var1, var2 .. ) 를 사용한다.
  • 8. 그 외.. tuple을 변수들에 한 번에 담으려면 std::tie(var1, var2 .. ) 를 거꾸로 사용한다.
  • 9. 그 외.. tuple들을 합치려면 std::tuple_cat(tuple1, tuple2)을 사용한다.