posted by 구로보루 2018. 4. 12. 19:34

 우선순위 큐는 기본은 선입선출 방식의 큐 컨테이너이지만 항상 조건에 따라 정렬된 순서로 담아두는 큐이다. 가령 내림차순이 조건이라면 선입선출의 방식에 따라 항상 가장 앞에 있는 제일 큰 원소를 접근하게 된다. 

 

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