기록을 하지 않으면,,,, 기억을 못 하는 병에 걸렸다.
오늘부터 하나씩 기록해야지
#include <queue>
priority_queue<자료형, 구현체, 비교연산자>
or
priority_queue<자료형>
1. Priority_queue란?
간단하게 말해서 정렬기능이 들어간 큐이다.
즉, 기본적으로 C++에서 자주 쓰이는 vector와 같은 container adaptor의 한 종류이며 C++에서 int와 같은 기본자료형으로 우선순위 큐를 사용한다면, 큐에 있는 모든 원소 중에서 가장 큰 값이 Top을 유지하도록, 우선순위가 가장 크도록 설계되어 있다. 또한 우선순위 큐는 내부적으로 Heap이라는 자료구조를 사용하고 있다. 간단하게 이 정도로 소개하고 바로 사용법을 살펴보자.
2. 기본적인 메서드
- push() : 우선순위 큐에 원소를 추가한다
- pop() : 우선순위 큐에서 top의 원소를 제거한다
- top() : 우선순위 큐에서 top에 있는 원소 즉 우선순위가 높은 원소를 반환한다.
- empty() : 우선순위 큐가 비어있으면 true를 반환하고 그렇지 않으면 false를 반환한다
- size() : 우선순위 큐에 포함되어 있는 원소의 수를 반환한다
3. 비교연산자
기본적으로는 가장 큰 값이 Top을 유지하도록 되어있지만, 안 그렇게 하고 싶으면 어떻게 할까?
비교연산자에 값을 추가해 주면 된다.
less <자료형>과 greater <자료형>이 있다.
less의 경우 #include <cstdio>, greater의 경우 #include <functional>을 선언해 주면 된다.
출처
댓글