priority queue的模板参数为<元素类型,容器类型,比较算子>
其中默认的算子为less,我在网上看到的less的解释是:小的元素往前排,大的往后排,出队时序列尾的元素出队
我就是不太懂这里为什么要是对尾的元素先出队,也就是q.top()返回的是队尾元素,且q.pop()删除的也是队尾元素——这不正好跟队列的定义完全相反了么??
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已采纳
C++的STL中关于priority_queue算子的详细定义
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
crazysaofeng 2015-10-02 04:17关注优先队列已经不是普通队列了 他实际是一个小根堆 堆顶是最小元素 top默认返回最小值 pop也是删除最小值 然后重构堆 不是你想的那种数组式的队列了
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2022-04-01 15:55回答 2 已采纳 你调用的是stl的函数,和这个无关,代码错了 if (__comp(__middle, __val)) ---》 if (__comp(*__middle, __val))模板
- 2022-02-11 15:11回答 1 已采纳 _First, _Last, _UFirst, _ULast都是迭代器这是函数模板,具体的参数类型根据传入参数类型来确定。比如,如果第三个参数传入的是函数名,那么_Pred就是指向这个函数的函数指针;
- 2022-09-13 16:44回答 2 已采纳 sMyPlayerTirggerData被定义成一个宏,其扩展为MyPlayerTirggerData::instance(),而MyPlayerTirggerData::instance()是一个静
- 2024-09-18 11:13TU^的博客 例如操作系统中的进程调度。图算法:在一些图算法中,如 Dijkstra 最短路径算法,可以使用优先队列来存储未访问的节点,并根据距离源点的距离进行优先级排序。事件处理:处理事件时,可以根据事件的时间戳或其他...
- 2022-03-18 15:15回答 1 已采纳 达不到想要的效果是因为你实例化的std::unordered_set不满足UnorderedAssociativeContainer的约束条件:其中一条是如果两个键值相等,那么它们的哈希值也相等。 你
- 2018-02-18 02:08回答 2 已采纳 首先遇到这类问题,你应该去看看 vector 的实现代码。这类问题你可以直接断点进去push_back里面看看代码实现。 我大致说一下,你这里出现的问题,无非就是一个:vector要存的大小发生了改
- 2018-08-17 22:26回答 3 已采纳 刚我试了一下,二维数组的首地址和二级指针确实有区别。 m_map = new stNode*[m_mapSize][NULL];改为 m_map = new stNode*[m_mapSize];
- 2024-07-28 17:00YiYang_HuTao的博客 优先队列,这一数据结构在传统队列的基础上引入了优先级的概念,...这种设计允许我们每次从优先队列中提取时,都能获得当前队列中最高优先级的元素。其背后的实现机制主要依赖于堆这一数据结构。//头文件//初始化定义。
- 2017-05-03 07:13回答 8 已采纳 std:sort() 所使用的容器必須能支持隨機存取, 如: std::vector 你使用的 std::list 非隨機存取的容器, std::list 排序可使用 std::list::so
- 2021-09-07 07:11回答 1 已采纳 通俗来说C++中的STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。属于软件
- 2022-06-05 06:43回答 2 已采纳 三种输出方式写在一个代码里了,有注释.下面是输入后,通过3种方式输出的截图: 代码如下; #include <iostream> #include <vector> #inc
- 2024-10-20 14:25J.呵呵的博客 上一节我们说了stack和queue这两种容器适配器,而priority_queue(优先级队列)同样也是属于容器适配器,它会优先处理级别较高的值,如数字最大的,其实也就是数据结构中的堆。即物理结构上是数组逻辑结构上是一颗...
- 2024-07-17 14:08tsyist的博客 和stack与queue一样,priority_queue也是一种容器适配器。他的本质其实是堆,作优先级队列的底层需要能够通过随机迭代器访问,所以他的底层是可以由vector和queue实例化,默认情况下priority_queue默认是用vector...
- 2022-07-26 05:59拉杆给油不要慌的博客 左图中,根节点是所有元素中最大的,右图中则恰好相反。左图每个节点都比他的左右子节点大,有图每个节点都比他的左右子节点小,这就是堆结构。堆是具有下列性质的完全二叉树每个节点的值都大于或等于其左右子节点的...
- 2024-06-06 01:39Zfox_的博客 C++STL priority_queue优先队列的详细用法及仿函数实现
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司