C++之priority_queue
1.优先队列priority_queue
优先先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序。每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储。常用的操作就是对数据排序,优先队列默认的是数据大的优先级高(即大根堆),即无论按照什么顺序push一堆数,top()总是能够弹出最大元素。
常用有以下四种情况:普通大根堆和小根堆,自定义类型的大根堆和小根堆:
#include <iostream>
#include <queue>using namespace std;struct Node{int x;Node( int a= 0):x(a) {}friend bool operator<(Node a,Node b ){return a.x<b.x;// 使用">"则为小根堆}
};int main(){int data2[5]={1,3,7,-4,56};priority_queue<int> big(data2,data2+5);//大根堆priority_queue<int,vector<int>,greater<int>> little(data2,data2+5);//小根堆。Node data1[10];for( int i= 0; i< 10; ++i )data1[i]=Node(rand());priority_queue<Node> q(data1,data1+10);//自定义大根模式while(!big.empty()){cout<<big.top()<<' ';big.pop();}cout<<endl;while(!little.empty()){cout<<little.top()<<' ';little.pop();}cout<<endl;while( !q.empty() ){cout << q.top().x << ' ' ;q.pop();} return 0;
}
对于三个参数的情况 "priority_queue<int,vector<int>,greater<int>>",第二个参数是存储容器,第三个是STL自带的仿函数
转载于:https://www.cnblogs.com/engineerLF/p/5393007.html
C++之priority_queue相关推荐
- C++ Stack Queue priority_queue
栈stack:stack 后入先出(LIFO) q.top() 获取栈顶元素(并不删除) q.pop() 删除栈顶元素 q.push(x) 向栈中加入元素 q.empty() 判断栈是否为空 队列qu ...
- c++ std::priority_queue优先队列
template <class T, class Container = vector<T>,class Compare = less<typename Container:: ...
- C++/C++11中std::priority_queue的使用
std::priority_queue:在优先队列中,优先级高的元素先出队列,并非按照先进先出的要求,类似一个堆(heap).其模板声明带有三个参数,priority_queue<Type, C ...
- C++STL 优先队列priority_queue使用
头文件:#include <queue> 一.申明方式 std::priority_queue<T> q; std::priority_queue<T, std::vec ...
- priority_queue 结构体的优先级设置
目标:使用结构体Node类型的优先队列,让其按照我们希望的顺序进行排序. 预备知识:会结构体的定义,和结构体类型的优先队列的定义,知道优先队列默认是最大堆排序(即top()得到的是最大的元素) 要做的 ...
- STL queue priority_queue
queue 队列 queue 队列 就像排队一样,后来的排在后面,先来的先出队.所以只能对队首和队尾的元素进行操作 back() 返回最后一个元素 empty() 如果队列空则返回真 front() ...
- 【HDU/算法】最短路问题 杭电OJ 2544 (Dijkstra,Dijkstra+priority_queue,Floyd,Bellman_ford,SPFA)
最短路径问题是图论中很重要的问题. 解决最短路径几个经典的算法 1.Dijkstra算法 单源最短路径(贪心),还有用 priority_queue 进行优化的 Dijkstra 算法. 2.bell ...
- C++ STL中的优先队列(priority_queue)使用
原文:https://www.cnblogs.com/cielosun/p/5654595.html 今天讲一讲优先队列(priority_queue),实际上,它的本质就是一个heap,我从STL中 ...
- C++_STL——queue(and priority_queue)
C++_STL--queue(and priority_queue) queue: template <class T, class Container = deque<T> > ...
- [C/C++标准库]_[初级]_[优先队列priority_queue的使用]
2019独角兽企业重金招聘Python工程师标准>>> std::priority_queue 场景: 1. 对于一个任务队列,任务的优先级由任务的priority属性指明,这时候就 ...
最新文章
- 黑苹果uhd630黑屏_求助各位图吧大佬一个黑苹果问题(黑苹果吧发帖得四级),目前使...
- [OS] 远程启动计划任务时以管理员身份运行
- java中json对象去重复_如何忽略Java中JSON对象的多个属性?
- win11如何登陆本地用户 windows11登陆本地用户的步骤方法
- 解读灰度直方图的信息
- 爬虫 | 破解APP中阿里云滑动验证码
- 转载:常见的15种音频格式
- 史上最全软件测试Web测试要点,吐血整理。
- visio流程图添加连接点
- 详解navigator对象
- 微软官方外挂,让你的win10更加好用
- VL53L0X+stm32激光测距
- LoRa节点如何以OTAA方式入网TTN服务器?
- 实现TextView尾部追加可点击的Icon和文本
- rootkit概念摘抄
- XSS能有什么危害?
- GPS定位(五)-高斯投影正反算C程序
- c++ 45行代码实现 生命游戏-细胞自动机!!!
- vue-cli3.x创建项目失败
- matlab2019b 读取excel数据并转换成.mat文件
热门文章
- Atitit.js javascript异常处理机制与java异常的转换 多重catc hDWR 环境 .js exception process Vob7
- paip.日期时间操作以及时间戳uapi php java python 总结
- paip.提高稳定性---自动检测sleep mysql数据库死连接以及kill
- Paip. DDBS 分布式 数据库系统 attilax总结C0G
- paip.解决Invalid byte 2 of 2-byte UTF-8 sequence.
- 我与OTC的诸位大神
- 【优化调度】基于matlab改进的遗传算法求解风电场优化调度问题【含Matlab源码 1245期】
- 【路径规划】基于matlab GUI蚁群算法求解电动汽车充电站与换电站协调路径规划【含Matlab源码 796期】
- 【车牌识别】基于matlab GUI汽车出入库收费系统(带面板)【含Matlab源码 735期】
- 【卡号识别】基于matlab分割法银行卡数字识别【含Matlab源码 312期】