저번 포스팅에 이어 이번엔 우선순위 큐를 알아보자!
스택과 큐는 이미 알고있다는 가정하에 쓰는 것이다.
큐 안에 들어있는 모든 원소중에 가장 큰 값이 top에 오도록 설계가 되어있는 자료구조이다. (즉 내림차순)
그럼 오름차순은요??? 그건 밑에서 알아보도록 하자!
priority_queue<int> q;
queue랑 매우 비슷하다.
.back()이 없고 .front() 대신 .top()을 사용한다.
#include <iostream>
#include <queue>
using namespace std;
int main()
{
priority_queue<int>q;
q.push(8);
q.push(7);
q.push(9);
q.push(10);
q.push(5);
while (!q.empty()) {
cout << pq.top() << '\n';
pq.pop();
}
return 0;
}
을 하게되면 10 - 9 - 8 - 7 - 5 이렇게 내림차순이 된 상태로 출력된다.
그럼 오름차순은 어떻게 해요???
#include<functional> 을 추가해준 후
선언할 때
priority_queue<int, vector<int>, greater<int>>q; 이렇게 선언해준다
priority_queue<type, Container<type>, greater<type>>q;
그럼 아까 예시를 든 코드를 다시 실행시켜보면
5 - 7 - 8 - 9 - 10 순으로 출력되는걸 볼 수 있다!
다음 포스팅은 Pair 클래스에 대해서 정리해보려고한다.
안농!