#include <queue>
using namespace std;
//최소부터 반환하는 큐(오름차순 정렬)
//컴파일러가 int>> 부분을 비트연산으로 착각할 수 있으니 띄어쓰기 해주기
priority_queue< int, vector<int>, greater<int> > q1;
//최대부터 반환하는 큐(내림차순 정렬)
priority_queue< int, vector<int>, less<int> > q2;
//q2와 똑같은 기능. 디폴트는 less임
priority_queue<int> q3;
priority_queue< 자료형, 구현체, 비교 연산자 > 이름;vector<자료형>이 디폴트deque<자료형> 도 가능less<자료형> : 최대부터 반환(내림차순 정렬)greater<자료형> : 최소부터 반환(오름차순 정렬)q1.pop();int n = q1.pop(); 불가능int n = q1.top();을 통해 변수에 저장한 후 pop해야함q1.push(value);q1.top();q1.empty();q1.size();𝑂(𝑙𝑜𝑔𝑁)𝑂(𝑁𝑙𝑜𝑔𝑁)𝑂(𝑁𝑙𝑜𝑔𝑁)👉 생각보다 연산속도가 빠르므로 가능한 경우엔 최대한 이용하도록 하자!
#include <queue>
using namespace std;
queue<int> q;
queue<자료형> 이름;q.pop();q.push(value);q.front();q.size();q.empty();while(!q.empty()) 안에서 큐 관련 작업을 함q.front() q.pop()은 반드시 !q.empty()라는 조건 안에서 수행 priority_queue<int, vector<int>, greater<int>> pq;
for (int i = 0; i < 10; i++)
{
arr[i] = i;
}
pq.push(arr[0]);
pq.push(arr[1]);
pq.push(arr[2]);
arr[1] = 10; //큐 밖에서 변수값을 10으로 바꿔도
while (!pq.empty())
{
int a = pq.top();
cout << a; //큐 안에 있는 값은 그대로 1
pq.pop();
}