1. 튜플 생성 및 읽기
여러 개의 데이터 형을 하나의 컨테이너에 선언
생성 예시는 아래와 같다.
tuple<int, string, string> tpTest01 = tuple<int, string, string>( 1, "하나", "one" );
tuple<int, string, string> tpTest02 = make_tuple( 2, "둘", "two" );
값을 읽기 위해 아래와 같이 get<>()을 사용하면 된다.
get<N번째 인자>( 컨테이너 변수 )
값 읽기 예시)
cout << "tpTest01 : (" << get<0>( tpTest01 ) << ", " << get<1>( tpTest01 ) << ", " << get<2>( tpTest01 ) << ")" << endl << endl;
cout << "tpTest02 : (" << get<0>( tpTest02 ) << ", " << get<1>( tpTest02 ) << ", " << get<2>( tpTest02 ) << ")" << endl << endl;
2. tie 함수 사용
tie 함수를 사용하여 tuple을 생성할 수 있다.
int iNo = 3;
string strKo = "셋";
string strEn = "three";
tuple<int, string, string> tpTest03 = tie( iNo, strKo, strEn );
tie는 참조로 반환하기 때문에 아래와 같이 사용하면, iNo, strKo, strEn 변수 값이 변경된다.
tuple<int, string, string> tpTest04 = make_tuple( 4, "넷", "four" );
tie( iNo, strKo, strEn ) = tpTest04;
cout << "iNo(" << iNo << "), strKo(" << strKo << "), strEn(" << strEn << ")" << endl << endl;
3. tuple_cat으로 두개의 tuple 합치기
두 개의 tuple을 합친 tuple을 만들고 싶을때 아래와 같이 tuple_cat을 사용하면 된다.
tuple<int, string, string> tpTest05_1 = make_tuple( 5, "오", "five" );
tuple<int, float> tpTest05_2 = make_tuple( 5, 5.0f );
tuple<int, string, string, int, float> tpCatTest = tuple_cat( tpTest05_1, tpTest05_2 );
4. 전체 코드
#include <iostream>
#include <tuple>
#include <string>
#include <float.h>
using namespace std;
void main()
{
tuple<int, string, string> tpTest01 = tuple<int, string, string>( 1, "하나", "one" );
tuple<int, string, string> tpTest02 = make_tuple( 2, "둘", "two" );
cout << "tpTest01 : (" << get<0>( tpTest01 ) << ", " << get<1>( tpTest01 ) << ", " << get<2>( tpTest01 ) << ")" << endl << endl;
cout << "tpTest02 : (" << get<0>( tpTest02 ) << ", " << get<1>( tpTest02 ) << ", " << get<2>( tpTest02 ) << ")" << endl << endl;
int iNo = 3;
string strKo = "셋";
string strEn = "three";
tuple<int, string, string> tpTest03 = tie( iNo, strKo, strEn );
cout << "tpTest03 : (" << get<0>( tpTest03 ) << ", " << get<1>( tpTest03 ) << ", " << get<2>( tpTest03 ) << ")" << endl << endl;
tuple<int, string, string> tpTest04 = make_tuple( 4, "넷", "four" );
tie( iNo, strKo, strEn ) = tpTest04;
cout << "iNo(" << iNo << "), strKo(" << strKo << "), strEn(" << strEn << ")" << endl << endl;
tuple<int, string, string> tpTest05_1 = make_tuple( 5, "오", "five" );
tuple<int, float> tpTest05_2 = make_tuple( 5, 5.0f );
tuple<int, string, string, int, float> tpCatTest = tuple_cat( tpTest05_1, tpTest05_2 );
cout << "tpCatTest : (" << get<0>( tpCatTest ) << ", " << get<1>( tpCatTest ) << ", " << get<2>( tpCatTest ) << ", ";
cout << get<3>( tpCatTest ) << ", " << get<4>( tpCatTest ) << ")" <<endl << endl;
system( "pause" );
}