
priority_queue优先队列
, less >pq;//最后两个>之间要有空格
发布日期:2021-05-07 03:05:41
浏览次数:29
分类:精选文章
本文共 919 字,大约阅读时间需要 3 分钟。
5.priority_queue(优先队列)
5.1 介绍
优先队列是在正常队列的基础上加了优先级,保证每次的队首元素都是优先级最大的。
它的底层是通过堆来实现的。
//头文件#include//初始化定义priority_queue pq;
5.2 函数方法
代码 | 含义 |
---|---|
top() | 访问队首元素 |
push() | 入队 |
pop() | 堆顶(队首)元素出队 |
size() | 队列元素个数 |
empty() | 是否为空 |
没有clear()! | 不提供该方法 |
优先队列只能通过top()访问队首元素(优先级最高的元素)
5.3 设置优先级
5.3.a 基本数据类型的优先级
priority_queue
解释:
第二个参数: vector< int > 是用来承载底层数据结构堆的容器,若优先队列中存放的是double型数据,就要填vector< double > 总之存的是什么类型的数据,就相应的填写对应类型。第三个参数:
less< int > 表示数字大的优先级大,降序队列 greater< int >表示数字小的优先级大,升序队列5.3.b 结构体优先级设置
优先级设置可以定义在结构体内进行小于号重载,也可以定义在结构体外,下面演示定义在外面的简单写法,详情大家可以搜索相关博客进行了解。
struct node{ int x; int y;}a,b;//注意:cmp是个结构体 struct cmp{ //自定义堆的排序规则 bool operator()(const &node a,const &node b) { return a.x>b.x;//从堆底到堆顶 降序排序 }//如果要升序改变不等号方向就好};//初始化定义, priority_queue,cmp >pq;
注意: 优先对列自定义排序规则和sort()函数定义cmp函数很相似,但是最后返回的情况是相反的。即相同的符号,最后定义的排列顺序是完全相反的。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年03月25日 01时45分40秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
上周热点回顾(1.23-1.29)
2021-05-09
上周热点回顾(3.20-3.26)
2021-05-09
上周热点回顾(6.19-6.25)
2021-05-09
云计算之路-阿里云上:docker swarm 集群故障与异常
2021-05-09
上周热点回顾(2.19-2.25)
2021-05-09
云计算之路-阿里云上:博客web服务器轮番CPU 100%
2021-05-09
云计算之路-阿里云上:服务器CPU 100%问题是memcached连接数限制引起的
2021-05-09
上周热点回顾(3.26-4.1)
2021-05-09
上周热点回顾(6.25-7.1)
2021-05-09
【故障公告】10:30-10:45 左右 docker swarm 集群节点问题引发故障
2021-05-09
工作半年的思考
2021-05-09
不可思议的纯 CSS 滚动进度条效果
2021-05-09
【CSS进阶】伪元素的妙用--单标签之美
2021-05-09
惊闻NBC在奥运后放弃使用Silverlight
2021-05-09
IE下尚未实现错误的原因
2021-05-09
创建自己的Docker基础镜像
2021-05-09
Python 简明教程 --- 20,Python 类中的属性与方法
2021-05-09
KNN 算法-理论篇-如何给电影进行分类
2021-05-09
Spring Cloud第九篇 | 分布式服务跟踪Sleuth
2021-05-09