(C++)Priority_Queue(우선순위 큐)

전성영·2022년 4월 20일
0

저번 포스팅에 이어 이번엔 우선순위 큐를 알아보자!

스택는 이미 알고있다는 가정하에 쓰는 것이다.

우선순위큐란?

큐 안에 들어있는 모든 원소중에 가장 큰 값이 top에 오도록 설계가 되어있는 자료구조이다. (즉 내림차순)

그럼 오름차순은요??? 그건 밑에서 알아보도록 하자!

선언

priority_queue<int> q;

사용방법

queue랑 매우 비슷하다.
.back()이 없고 .front() 대신 .top()을 사용한다.

예시

#include <iostream>
#include <queue>
using namespace std;
int main() 
{
    priority_queue<int>q; 
 
    q.push(8);
    q.push(7);
    q.push(9);
    q.push(10);
    q.push(5);
 
    while (!q.empty()) {
        cout << pq.top() << '\n';
        pq.pop();
    }
    return 0;
}

을 하게되면 10 - 9 - 8 - 7 - 5 이렇게 내림차순이 된 상태로 출력된다.

그럼 오름차순은 어떻게 해요???

#include<functional> 을 추가해준 후

선언할 때
priority_queue<int, vector<int>, greater<int>>q;  이렇게 선언해준다
priority_queue<type, Container<type>, greater<type>>q;


그럼 아까 예시를 든 코드를 다시 실행시켜보면
5 - 7 - 8 - 9 - 10 순으로 출력되는걸 볼 수 있다!

다음 포스팅은 Pair 클래스에 대해서 정리해보려고한다.
안농!

profile
Slow and Steady

0개의 댓글