58STL

it2025-06-20  5

58STL_priority_queue

基本概念示例代码

基本概念

priority_queue 优先级队列,不是FIFO,而是始终把最优先级的数据放在队首

也是自适应容器(容器适配器),不能使用list类型

包含:

最大值优先级队列 priority_queue< int, deque< int >> pq;最小值优先级队列 priority_queue< int, deque< int >, greater> pq;

常用函数: pq.empty()、pq.size()、pq,top()、pq.pop()、pq.push(item)

示例代码

#include <iostream> #include <queue> #include <vector> #include <deque> using namespace std; int main() { priority_queue<int> pq; pq.push(10); //默认是最大值优先级队列 pq.push(5); pq.push(-1); pq.push(20); cout << "优先级队列里一共有:" << pq.size() << " 个数据" << endl; while(pq.size() != 0) { cout << "从优先级队列里面删除:" << pq.top() <<endl; pq.pop(); } cout << "优先级队列里一共有:" << pq.size() << " 个数据" << endl; cout << endl; //最小值优先级队列,第三个参数是一个谓词 priority_queue<int, deque<int>, greater<int>> pq2; //最小值优先级队列 pq2.push(10); pq2.push(5); pq2.push(-1); pq2.push(20); cout << "最小值优先级队列里一共有:" << pq2.size() << " 个数据" << endl; while(pq2.size() != 0) { cout << "从优先级队列里面删除:" << pq2.top() << endl; pq2.pop(); } return 0; }
最新回复(0)