【c++】STL里的priority_queue用法总结
来源:互联网 发布:淘宝发红包的钱在哪里 编辑:程序博客网 时间:2024/06/05 17:16
1、头文件
#include<queue>
2、定义
priority_queue<int> p;
3、优先输出大数据
priority_queue<Type, Container, Functional>
Type为数据类型, Container为保存数据的容器,Functional为元素比较方式。
如果不写后两个参数,那么容器默认用的是vector,比较方式默认用operator<,也就是优先队列是大顶堆,队头元素最大。
例如:
#include<iostream>#include<queue>using namespace std;int main(){priority_queue<int> p;p.push(1);p.push(2);p.push(8);p.push(5);p.push(43);for(int i=0;i<5;i++){cout<<p.top()<<endl;p.pop();}return 0;}
输出:
4、优先输出小数据
方法一:
priority_queue<int, vector<int>, greater<int> > p;
例如:
#include<iostream>#include<queue>using namespace std;int main(){priority_queue<int, vector<int>, greater<int> >p;p.push(1);p.push(2);p.push(8);p.push(5);p.push(43);for(int i=0;i<5;i++){cout<<p.top()<<endl;p.pop();}return 0;}
输出:
方法二:自定义优先级,重载默认的 < 符号
例子:
#include<iostream>#include<queue>#include<cstdlib>using namespace std;struct Node{int x,y;Node(int a=0, int b=0):x(a), y(b) {}};struct cmp{bool operator()(Node a, Node b){if(a.x == b.x)return a.y>b.y;return a.x>b.x;}};int main(){priority_queue<Node, vector<Node>, cmp>p;for(int i=0; i<10; ++i)p.push(Node(rand(), rand()));while(!p.empty()){cout<<p.top().x<<' '<<p.top().y<<endl;p.pop();}//while//getchar();return 0;}
输出:
1 0
- 【c++】STL里的priority_queue用法总结
- STL里的priority_queue用法
- STL中 priority_queue的用法
- priority_queue的用法总结
- STL之priority_queue的用法,优先队列
- stl::priority_queue的用法及其成员函数
- STL priority_queue<> 用法
- C++ STL priority_queue<> 用法
- STL priority_queue用法
- c++stl的queue和priority_queue
- STL priority_queue 总结
- C++STL priority_queue 学习
- stl里关于heap的函数与priority_queue的区别
- C++STL之string的用法总结
- stl priority_queue的使用
- priority_queue 用法总结
- priority_queue 用法总结
- 转载priority_queue用法总结
- Codeforces Round #364 (Div. 2) C They Are Everywhere(滑窗)
- hdu 5726 GCD(线段树+预处理)
- JSP属性范围
- 从非正规格式的输入数得到正规输入格式
- Sort Algorithm-->Bubble Sort
- 【c++】STL里的priority_queue用法总结
- 算法导论(6) 红黑树
- HDU-2012
- 百练2815:城堡问题
- OpenCv之图像腐蚀
- 关于SPFA算法
- Integer与int的种种比较
- 安卓学习笔记Ubuntu 16.04 LTS中安卓开发环境的搭建步骤
- Codeforces Round #364 (Div. 2) D As Fast As Possible(数学)