여러개의 객체를 하나로 묶어 쓸수 있다. 기존에 stl 에 pair 는 두개만 묶어서 사용했지만 tbple 은 최대 10개의 객체를 묶어서 사용할수 있다.
10 마디 말보다 1줄 코딩이 이해하기 빠르다~
#includeusing std::tr1::tuple; using std::tr1::make_tuple; using std::tr1::get; using std::tr1::tie; void Printtuple(tuple t) { std::cout << get<0>(t) << ", "; std::cout << get<1>(t) << ", "; std::cout << get<2>(t).c_str(); std::cout << std::endl; } template int GetTuplesize(const TupleSize&) { return std::tr1::tuple_size ::value; } int _tmain(int argc, _TCHAR* argv[]) { //===== tuple 생성 //일괄 생성 tuple t = make_tuple(1, 'A', "TEST"); Printtuple(t); //하나씩 생성 tuple t1; //tuple 의 각각 원소에 접근하기 위해 get 메소드를 사용한다. //메소드 인자로 상수값(const)만 받을수 있어서 아쉽다. get<0>(t1) = 2; get<1>(t1) = 'B'; get<2>(t1) = "TEST1"; Printtuple(t1); //===== tuple 생성 //===== tuple 일괄 참조 int n = 0; char c = 'C'; std::string str = "NONE"; //첫번째 요소만 읽고 두번째, 세번째 요소는 필요 없을 경우.. tie(n, std::tr1::ignore, std::tr1::ignore) = t; std::cout << n << ", " << c << ", " << str.c_str() << std::endl; //모든 요소를 읽는다. tie(n, c, str) = t; std::cout << n << ", " << c << ", " << str.c_str() << std::endl; //===== tuple 일괄 참조 //===== tuple 요소 카운트 std::cout << "size: " << GetTuplesize(t) << std::endl; //===== tuple 요소 카운트 return 0; }
실행결과:
1, A, TEST
1, B, TEST1
1, C, NONE
1, A, TEST
3
'Library' 카테고리의 다른 글
TR1 유용한 클래스/함수 (3) ... UnOrdered Associative Containers (0) | 2010.01.27 |
---|---|
TR1 유용한 클래스/함수 (2) ... shared_ptr (1) | 2010.01.19 |
C++ TR1 설치 (0) | 2010.01.08 |
Apache Log4cxx 0.10.0 윈도우에서 빌드 하기 (2) | 2008.07.28 |
Boost 라이브러리 설치 (9) | 2008.07.13 |