c++11 tuple

9

Click here to load reader

Upload: quxn6

Post on 12-Jul-2015

161 views

Category:

Software


3 download

TRANSCRIPT

Page 1: C++11 Tuple

std::tuple

Page 2: C++11 Tuple

tuple 이란?

2개 이상의 값을 하나의 변수로 묶을 수 있게 해주는 library

std::tuple<int, float, std::string> t1= std::tuple<int, float, std::string>( 1, 3.0f, "tuple" );

Page 3: C++11 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" );

Page 4: C++11 Tuple

어떻게 만드나?

auto 도 사용가능, 심지어는 auto 와 make_tuple로 아래 t4 같은 변태조합도 가능함.(자료형이 어떻게 될 지 모르니 저렇게는 안쓰는게 좋을 듯...)

Page 5: C++11 Tuple

어떻게 쓰나?

std::get<#>(var) 식으로 선언된 자료의 순서를 이용해 꺼내올 수 있다.

자료 수정 역시 std::get<#>(var) = var2 식으로 할 수 있다.

Page 6: C++11 Tuple

tuple에 원소가 몇 개 있는지는 어떻게?

std::tuple_size<decltype(var)>::value 로 구할 수 있다.

반환 값은 unsigned 이다.

Page 7: C++11 Tuple

그 외..

참조 데이터를 가지는 tuple을 만들려면

std::tie(var1, var2 .. ) 를 사용한다.

Page 8: C++11 Tuple

그 외..

tuple을 변수들에 한 번에 담으려면

std::tie(var1, var2 .. ) 를 거꾸로 사용한다.

Page 9: C++11 Tuple

그 외..

tuple들을 합치려면 std::tuple_cat(tuple1, tuple2)을 사용한다.