首页 > 编程 > C++ > 正文

C++ STL 学习笔记 priority_queue

2019-11-06 07:12:08
字体:
来源:转载
供稿:网友

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(); //不能用frontpq.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;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选