priority_queue
- 优先级队列适配器
- 自适应容器(容器适配器):不能用list只能用vector deque
- 最大值优先级队列(less),最小值优先级队列(greater)默认从大到小排序
-
相关操作
priority_queue<int,deque<int>,less<int>> pq; //最大值优先级队列可以不写less,应为默认为它 priority_queue<int,vector<int>,greater<int>> pq; //最小值优先级队列,需要包含functional头文件应为less和greater在该文件中 pq.empty(); pq.size(); pq.push(item); pq.pop(); pq.top(); //不能用front pq.back();
学习代码
#include <iostream> #include <queue> #include <functional> //使用greater要包含这个 using namespace std; int main() { priority_queue<int, vector<int>,less<int>> pq; //最大值优先级队列 priority_queue<int, deque<int>, greater<int>> pq2;//最小值优先级队列 pq.push(10); pq.push(5); pq.push(20); pq.push(15); cout << "优先级队列里有" << pq.size() << "个数据" << endl; cout << pq.top() << endl; while (!pq.empty()) { cout << "从优先级队列里删除" << pq.top() << endl; pq.pop(); } cout << "下面是最小值优先级队列" << endl; pq2.push(10); pq2.push(5); pq2.push(-1); pq2.push(20); cout << pq2.top() << endl; while (!pq2.empty()) { cout << "删除" << pq2.top() << endl; pq2.pop(); } getchar(); return 0; }