우선순위 큐는 기본은 선입선출 방식의 큐 컨테이너이지만 항상 조건에 따라 정렬된 순서로 담아두는 큐이다. 가령 내림차순이 조건이라면 선입선출의 방식에 따라 항상 가장 앞에 있는 제일 큰 원소를 접근하게 된다.
priority_queue<T, Container = vector<T>, Compare = less<T>>
T : 원소의 타입
Container : 우선순위 큐를 구현하는 데 사용되는 기본 형식으로 생략하면 vector가 된다.
Compare : 기본 순서 조건자로 less<T>는 내림차순 정렬이다.
-> 큐는 컨테이너 어뎁터이기 때문에 front, push_back, pop_front, empty, size 연산만 할 수 있다면 어떤 컨테이너라도 지정할 수 있다.
※ 컨테이너 어뎁터 : 순차열 컨테이너를 다른 기능을 제공하는 컨테이너로 정의하기 위해 래핑하는 클래스 템플릿
멤버 함수 | |
push |
원소를 삽입. 정해진 위치에 넣기 위해 정렬연산이 동작 |
emplace |
윈소를 내부에서 생성해 삽입. 정렬연산 동작 |
top |
우선순위 큐의 첫 번째 원소 참조 반환 |
pop |
우선순위 큐의 첫 번째 원소 제거 |
size |
우선순위 큐에 있는 원소의 개수 반환 |
empty |
우선순위 큐에 원소가 없으면 true 반환 |
swap |
두 컨테이너의 모든 원소 교환 |
'공부 > C++(STL)' 카테고리의 다른 글
queue 컨테이너 (0) | 2018.04.10 |
---|---|
stack 컨테이너 (0) | 2018.04.05 |
forward_list 컨테이너 (0) | 2018.04.03 |
list 컨테이너 (0) | 2018.04.02 |
deque 컨테이너 (0) | 2018.03.30 |