CS/C++
[Mastering C++ Programming] - Priority Queue
sliver__
2022. 12. 5. 22:05
728x90
- 우선순위 큐는 기존 컨테이너를 래핑하고 우선순위 대기열 작업에 필요한 높은 수준의 기능을 제공하는 동시에 우선순위 대기열과 관련 없는 불필요한 기능을 숨기는 템플릿화된 어댑터 클래스이다.
- 우선 순위 대기열은 기본적으로 벡터 컨테이너를 사용합니다.
- 그러나 deque 컨테이너도 우선 순위 큐의 요구 사항을 충족합니다.
- 따라서 우선순위 대기열 인스턴스화 중에 우선순위 큐에 deque도 사용하도록 지시할 수 있습니다.
- 우선 순위 큐는 가장 높은 우선 순위 값이 먼저 표시되는 방식으로 데이터를 구성합니다.
- 즉, 값이 내림차순으로 정렬됩니다.
- deque 와 vector는 우선 순위 큐 어댑터의 요구 사항을 충족합니다.
- API는 아래와 같다.
- 예제 코드는 아래와 같다.
#include <iostream>
#include <queue>
#include <iterator>
#include <algorithm>
using namespace std;
int main () {
priority_queue<int> q;
q.push( 100 );
q.push( 50 );
q.push( 1000 );
q.push( 800 );
q.push( 300 );
cout << "\nSequence in which value are inserted are ..." << endl;
cout << "100\t50\t1000\t800\t300" << endl;
cout << "Priority queue values are ..." << endl;
while ( ! q.empty() ) {
cout << q.top() << "\t";
q.pop();
}
cout << endl;
return 0;
}
- 결과는 내림차순으로 출력된다.
./a.out
Sequence in which value are inserted are ...
100 50 1000 800 300
Priority queue values are ...
1000 800 300 100 50
728x90