[STL] 7. priority_queue

[STL] 7. priority_queue

Tags
STL

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();