알고리즘

[우선순위 큐(Heap)] c++

kyeongjun-dev 2020. 6. 14. 19:06

기본 형태

  • priority_queue<T, Container, Compare>

연산

  • push(원소) : 우선순위 큐에 원소 추가
  • pop() : 우선순위 큐에서 top의 원소를 삭제

top 확인

  • top() : top에 있는 원소를 반환

기타

  • empty() : 우선순위 큐가 비어있으면 true, 아니면 false를 반환
  • size() : 우선순위 큐의 원소의 갯수를 반환

Max Heap

priority_queue<int, vector<int>, less<int>> pq;
  • 비교함수가 less이면 top에 최댓값이 온다

Min Heap

priority_queue<int, vector<int>, greater<int>> pq;
  • 비교함수가 greater이면 top에 최솟값이 온다

우선순위 큐의 pair

priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;
  • pair로 우선순위 큐를 구현할 때, 첫 번째 값으로 비교를하고 첫 번째 값이 크면 자동으로 두 번째 값으로 비교를 하여 Heap을 구성한다.
  • 연습문제 : 백준 20352029번