알고리즘
[우선순위 큐(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번