Program Language/C & C++

[C++] 변수 묶어 사용하기 (pair, tuple)

야곰야곰+책벌레 2021. 11. 15. 19:04
728x90
반응형

함수를 이용할 때 연관된 내용을 동일한 개수만큼 전달하거나 관리해야 할 때 묶어서 사용하곤 한다. 자주 사용되는 경우라면 struct나 class를 이용하여 작업을 할 수도 있지만 임의로 묶어 사용할 때에는 비효율적이다. 이런 점을 해결하기 위해서 C++에서는 pair와 tuple을 지원한다.

pair : 2개의 값을 묶고 싶을 때,
tuple : 3개의 값을 묶고 싶을 때,

pair의 경우에는 웬만한 STL 헤드 파일을 첨부하면 사용할 수 있지만 tuple의 경우에는 <tuple>을 include 해줘야 한다.

pair의 경우에는 make_pair를 tuple은 make_tuple을 사용하면 된다.

pair는 first, second를 참조하면 되고, tuple은 get을 이용해야 한다.

#include <tuple>
#include <iostream>
using namespace std;

int main()
{
	pair<int, double> pa = make_pair(1, 1.0);
	cout << pa.first << ":" << pa.second << endl;

	tuple<int, double, string> tu = make_tuple(1, 1.0, "ok");
	cout << get<0>(tu) << ":" << get<1>(tu) << ":" << get<2>(tu).c_str() << endl;

	return 0;
}

728x90
반응형