본문 바로가기
OLD_알고리즘

STL ] priority_queue

by 달승 2021. 3. 4.

"우선 순위가 가장 높은 데이터를 가장 먼저 삭제 하는 자료구조"

 

" C++의 priority_queue의 경우 "최대 힙"으로 우선 순위가 구현되어 있습니다."

 

 

std::priority_queue - cppreference.com

template<     class T,     class Container = std::vector ,     class Compare = std::less > class priority_queue; A priority queue is a container adaptor that provides constant time lookup of the largest (by default) element, at the expense of logarit

en.cppreference.com

Element access
top accesses the top element

 

Capacity
empty checks whether the underlying container is empty
size returns the number of elements

 

Modifiers
push inserts element and sorts the underlying container
pop removes the top element

 

 

▲ 코드 예시

#include <queue>
#include <vector>
#include <iostream>
using namespace std;

template<typename T>
void print_queue(T q) { // NB: pass by value so the print uses a copy
    while(!q.empty()) {
        cout << q.top() << ' ';
        q.pop();
    }
    cout << '\n';
}
 
int main() {
    priority_queue<int> q;
 
    const auto data = {1,8,5,6,3,4,0,9,7,2};
 
    for(int n : data)
        q.push(n);
 
    print_queue(q);
    // 출력 결과 : 9 8 7 6 5 4 3 2 1 0 
 
    priority_queue<int, vector<int>, greater<int>>q2(data.begin(), data.end());
 
    print_queue(q2);
    // greater<int> 사용 & 출력 결과 : 0 1 2 3 4 5 6 7 8 9 
}

'OLD_알고리즘' 카테고리의 다른 글

String ] 알파벳 + 숫자  (0) 2021.03.08
Solving Skill ] 구현  (0) 2021.03.07
STL ] Queue  (0) 2021.02.10
STL ] vector에서 iterator 사용 - 타 블로그 참고  (0) 2021.02.03
C++ ] Hash - unordered_map  (0) 2021.01.22

댓글