본문 바로가기

알고리즘을 위한 간략 정리/자료구조 - 연속 컨테이너

[C++] 우선순위 큐(PRIORITY_QUEUE)

핵심 요약

  • 우선 순위에 따라 정렬된 queue이다.
  • heap으로 구현되어 있어, 특정 원소를 push할 때 생기는 정렬의 시간 복잡도는 logN에 실현된다.

헤더파일 및 선언

#include <queue> //<priority_queue>라는 헤더파일을 따로 사용하지 않는다.

priority_queue<자료형, Container, 비교함수> 변수명; //선언한 자료형 변수들을 비교함수에 따라 정렬.

priority_queue<int, vector<int>, greater<int>> pq; //올림차순, 가장 앞에 제일 작은 수가 오게된다.
priority_queue<int> pq; //내림차순, 가장 앞에 제일 큰 수가 오게된다.

관련 함수(삽입, 삭제 등)

priority_queue<int> pq;

pq.push(변수); //변수를 넣는다.

pq.pop(); //맨 앞의 원소를 제거.

pq.top(); //맨 앞의 원소를 반환.

pq.empty(); //비어있을 경우 true, 원소가 하나라도 있을경우 false를 리턴한다.

pq.size(); //크기를 리턴한다.