우사미 코딩

[C++] priority_queue 우선순위큐 본문

Programming (C++)/C++ 자료구조

[C++] priority_queue 우선순위큐

맑은 눈의 우사미 2023. 5. 11. 05:40
반응형

queue는 FIFO (First In First Out) 로 먼저 들어온 데이터가 우선적으로 삭제하는 자료구조이지만

priority_queue는 삽입된 순서와 관련없이 우선순위가 높은 데이터를 삭제하는 자료구조이다

 

오름차순, 내림차순 queue를 사용해야 할 때가 있는데 이때 priority queue를 사용한다.

 

 

priority_queue를 사용하려면 queue를 include 해야한다.

    #include<queue>

 

 

1. 값이 높은 숫자가 우선적으로 삭제되는 queue

    priority_queue<int, vector<int>, less<int>> lessQ;

    lessQ.push(3);
    lessQ.push(2);
    lessQ.push(1);
    lessQ.push(6);
    lessQ.push(8);
    lessQ.push(7);


    lessQ.pop(); // 8삭제
    lessQ.pop(); // 7삭제

    cout << "print lessQ : ";
    while (!lessQ.empty()) {
        cout << lessQ.top() << " ";
        lessQ.pop();
    } 	 
    cout << endl;

 

출력값

	print lessQ : 6 3 2 1

 

 

2. 값이 낮은 숫자가 우선적으로 삭제되는 queue

    priority_queue<int, vector<int>, greater<int>> greaterQ;

    greaterQ.push(3);
    greaterQ.push(2);
    greaterQ.push(1);
    greaterQ.push(6);
    greaterQ.push(8);
    greaterQ.push(7);

    greaterQ.pop(); // 1삭제
    greaterQ.pop(); // 2삭제

    cout << "print greaterQ : ";
    while (!greaterQ.empty()) {
        cout << greaterQ.top() << " ";
        greaterQ.pop();
    }
    cout << endl;

출력값

	print greaterQ : 3 6 7 8

 

반응형
Comments