1. pair 클래스
- 두 개의 데이터를 쌍으로 묶어서 저장하는 클래스
* pair 클래스 함수
pair<int, int> p
p.first
p.second
make_pair(a, b)
pair<int, int>(a, b)
2. tuple 클래스
- 세 개 이상의 데이터를 묶어서 저장하는 클래스
* tuple 클래스 함수
tuple<int, int, int> t
get<0>(t);
get<1>(t);
get<2>(t);
make_tuple(a, b, c)
tuple<int, int, int>(a, b, c)
3. 활용
- pair나 tuple은 보통 알고리즘 문제를 풀 때 큐(queue), 스택(stack), 벡터(vector) 등과 함께 사용되는 경우가 많다.
vector<pair<int, int>> arr;
queue<pair<int, int>> q;
stack<pair<int, int>> s;
typedef pair<int, int> pii;
typedef tuple<int, int, int> tiii;
vector<pii> arr;
queue<pii> q;
stack<tiii> s;
q.push(pair<int, int>(1, 2));
s.push(make_tuple<int, int, int>(1, 2, 3));
cout << q.front().first;
cout << q.front().second;
cout << get<0>(s.top());
cout << get<1>(s.top());
cout << get<2>(s.top());