본문 바로가기
C++

#1. Priority_queue

by junnykim 2023. 7. 27.

기록을 하지 않으면,,,, 기억을 못 하는 병에 걸렸다.

오늘부터 하나씩 기록해야지

 

#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>을 선언해 주면 된다.

 

 

 

출처

https://kbj96.tistory.com/15

https://playground10.tistory.com/293

댓글