谁都能看懂的C++ STL之优先队列(priority_queue)
来源:互联网 发布:淘宝店铺关闭怎么激活 编辑:程序博客网 时间:2024/06/14 23:24
优先队列其头文件
#include<queue>
其中队列为先进先出的原则,而优先队列为按照最高优先级出队。
声明一个优先队列时:priority_queueq;
基本操作为:
q.push():向队列里添加一个元素;
q.top():返回优先队列中的队顶元素;
q.empty():判断优先队列是否为空;
q.size():返回优先队列中拥有的元素个数;
q.pop():删除队顶元素;
优先队列中优先元素自定义:
const int N = 1e5+10; struct node{ int num; int date; friend bool operator <(node a,node b) { return a.date<b.date;//大的优先级高 }}e[N];
若有运算符重载不懂的,先去看懂运算符重载;
下面是一些优先队列的基本操作的实现:
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<cctype>#include<cmath>#include<stdlib.h>#include<queue>using namespace std;const int N = 1e5+10; struct node{ int num; int date; friend bool operator <(node a,node b) { return a.date<b.date;//大的优先级高 }}e[N]; int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&e[i].date); e[i].num; } priority_queue<node>q;//创建一个空的优先队列 for(int i=1;i<=n;i++) { q.push(e[i]);//入队 } int l=q.size();//返回优先队列拥有的元素个数 printf("该优先队列中的元素个数为:%d\n",l); while(!q.empty())//当队列非空时执行 { node s=q.top();//返回队列的队顶元素 q.pop();//删除队顶元素 printf("%d %d\n",s.num,s.date); } return 0; }
阅读全文
0 0
- 谁都能看懂的C++ STL之优先队列(priority_queue)
- C++STL之priority_queue优先队列容器
- C++STL--priority_queue(优先队列)
- STL之priority_queue的用法,优先队列
- STL之priority_queue(优先队列)
- STL之priority_queue(优先队列)
- STL 之 优先队列(priority_queue)
- STL之优先队列priority_queue
- STL - priority_queue(优先队列)
- STL priority_queue 优先队列
- STL priority_queue 优先队列
- STL priority_queue 优先队列
- STL priority_queue优先队列
- stl-优先队列priority_queue
- STL学习之优先队列(Priority_queue)(1)
- STL系列之五 priority_queue 优先队列
- STL之优先队列priority_queue浅析
- STL中优先队列(priority_queue)的相关操作
- 常用算法
- Android Studio 完美修改应用包名
- strlen函数的实现
- 吴恩达教程课程一第二周
- 腾讯云无服务器云函数架构精解
- 谁都能看懂的C++ STL之优先队列(priority_queue)
- 关于com.github.pagehelper.PageHelper3系列与5系列的区别
- 解决Zepto.js轻扫手势和动画没作用
- 重载运算符=
- eclipse常用快捷键
- 基于canny边缘检测以及基于radon变换的矩形旋转矫正
- PAT 乙级 1032
- LCT模板及详细讲解
- 遗传算法(四)MATLAB GA工具箱使用 附解TSP问题