priority_queue
- std::priority_queue는 STL에서 제공하는 컨테이너 어댑터이다.
- 내부적으로 heap을 사용하여 우선순위에 따라 자동으로 정렬하여 관리한다.
- 요소가 추가될 때 마다 정렬이 이루어져 자료구조+알고리즘 이라 할 수 있다.
- 기본적으로는 최대 힙으로 동작하고, 우선순위를 바꿀 수 있다.
생성
priority_queue<int> pq; priority_queue<int, greater<int>> max_heap; priority_queue<int, less<int>> min_heap; struct custom { bool operator()(const int& a, const int& b) const{ return a > b; } } priority_queue<int, custom> custom_heap;
멤버 함수
자주 사용되는 멤버 함수를 정리했다. 자세한 내용은 아래 사이트에서 볼 수 있다.
접근
pq.top();
heap 자료구조를 기반으로 동작하기 때문에 접근이 제한적이다.
삽입
// 우선순위 큐에 요소를 추가 pq.push(int); pq.emplace(int);
우선순위 큐에도 emplace가 있지만, iterator로 위치를 특정하지 않는다.
삭제
// 우선순위 큐의 맨 위 요소를 삭제 pq.pop();
조정
// 두 우선순위 큐를 교환 pq.swap();