반응형
알고리즘 문제를 풀 때 큐(queue)나 스택(stack)에 push 할 때 아래와 같이 파라미터를 보통 1개나 2개를 넣는 경우가 많습니다.
#include<iostream>
#include<queue>
using namespace std;
int x, y, z;
queue<pair<int, int>> q;
int main()
{
x = 3;
y = 5;
q.push(make_pair(x, y));
cout << q.front().first << " " << q.front().second;
}
그러나 pair는 인자를 최대 2개까지밖에 만들지 못하므로 인자가 3개이상일 때는 tuple을 사용하여 묶을 수 있습니다.
#include<iostream>
#include<tuple>
#include<queue>
using namespace std;
int x, y, z;
queue<tuple<int, int, int>> q;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
x = 3;
y = 5;
z = 7;
q.push(make_tuple(x, y, z));
cout << get<0>(q.front()) << " ";
cout << get<1>(q.front()) << " ";
cout << get<2>(q.front()) << " ";
}
pair에서는 아래와 같이 값을 push한 다음
queue<pair<int, int>> q;
q.push(make_pair(a,b));
q.front().first와 q.front().second로 a와 b에 접근할 수 있고,
tuple에서는 아래와 같이 값을 push 한 다음
queue<tuple<int, int, int>> q;
q.push(make_tuple(a,b,c));
get<0>(q.front()) 로 a를,
get<1>(q.front()) 로 b를,
get<2>(q.front()) 로 c를 접근할 수 있게 된다.
반응형
'🟦C++' 카테고리의 다른 글
[C++] #include <>(꺾쇠)와 ""(큰 따옴표) 차이 (1) | 2022.02.05 |
---|---|
[C++] STL lower_bound, upper_bound 사용법과 예제코드 (0) | 2020.12.27 |
[C++] STL Vector 벡터 사용법과 예제코드 (0) | 2020.12.08 |
[C++] STL Deque 덱 사용법과 예제코드 (0) | 2020.12.08 |
[C++] STL Stack 스택 사용법과 예제코드 (0) | 2020.12.08 |