小学生学C++编程语法知识(STL容器(7、认识 Priority Queue(优先队列)))
STL课程第七课《国王的排行榜——认识 Priority Queue优先队列》本课目标理解什么是 Priority Queue优先队列。知道 Priority Queue 与 Queue 的区别。熟练掌握push()、pop()、top()、size()、empty()。掌握默认最大堆最大值优先。掌握最小堆最小值优先的写法。能解决排行榜、找最大值、找最小值等问题。为以后学习堆排序、贪心算法、Dijkstra算法打基础。第一幕 国王举办武林大会程序王国举行武林大会。来了很多高手。他们的武功分别是小明 80 小红 95 小刚 70 小美 100 小军 88请问如果他们排普通队伍。是不是先来的先比赛同学们回答是的。可是今天国王宣布武功最高的人先上场无论谁先来。只看武功高低。我们画图普通队列Queue 小明 → 小红 → 小刚 → 小美 优先队列Priority Queue 小美100 小红95 小军88 小明80 小刚70今天需要认识一个新朋友。叫Priority Queue中文名字优先队列意思就是谁更重要谁先出来。第二幕 Queue和Priority Queue有什么不同画表QueuePriority Queue谁先来谁先走谁最大谁先走FIFO按优先级排队排行榜总结普通队列。按时间。优先队列。按大小。第三幕 请出Priority Queue首先。头文件#includeiostream #includequeue using namespace std;创建priority_queueint pq;解释。priority优先。queue队列。pq。变量名字。第四幕 放入数字依次加入pq.push(50); pq.push(90); pq.push(30); pq.push(100); pq.push(80);请问现在。谁站最前面同学们猜是不是100答案正确✅️。因为Priority Queue。永远把最大的放前面。第五幕 看看第一名程序coutpq.top();输出100不是第一个加入。而是最大的。第六幕 第一名离开执行pq.pop();100离开。请问。新的第一名是谁答案90。再pop();变成80。画图开始100 90 80 50 30↓pop90 80 50 30↓pop80 50 30是不是很像排行榜。第七幕 演示程序#includeiostream #includequeue using namespace std; int main() { priority_queueint pq; pq.push(50); pq.push(90); pq.push(30); pq.push(100); pq.push(80); while(!pq.empty()) { coutpq.top() ; pq.pop(); } return 0; }输出100 90 80 50 30请看输出时。已经自动排好了。第八幕 如果我要最小的怎么办如果医院今天要先看年龄最小的人。怎么办默认。Priority Queue。最大的在前。现在。我们想最小的在前。怎么办我们请出一个新魔法greaterint创建priority_queueint, vectorint, greaterint pq;看起来很长。可以直接套模板。第九幕 最小堆程序priority_queueint, vectorint, greaterint pq; pq.push(50); pq.push(90); pq.push(30); pq.push(100); pq.push(80);输出30 50 80 90 100最大的。变成最小的。第十幕 最大堆和最小堆最大堆100 90 80 50 30最小堆30 50 80 90 100口诀默认最大。greater就是最小。第十一幕 课堂实践一——成绩排行榜输入90 75 100 88 95要求输出100 95 90 88 75参考程序priority_queueint pq; int n; cinn; for(int i0;in;i) { int x; cinx; pq.push(x); } while(!pq.empty()) { coutpq.top() ; pq.pop(); }第十二幕 课堂实践二——找最小数字输入8 12 5 30 1 18要求输出1 5 12 18 30同学们来完成最小堆。第十三幕 Priority Queue和Sort有什么区别画表SortPriority Queue一次排好随时加入全部排序每次只关心第一名排完不变可以不断加入新数据举例学校成绩。考完一次。排序。用sort。直播间人气。一直变化。用Priority Queue。第十四幕 Priority Queue能保存结构体吗当然可以。还可以使用cmp。堆。后面会讲。今天大家先认识。整数版本。第十五幕 真正的大本领Priority Queue。以后。会出现在 Top K 最大值 Top K 最小值 堆排序 Dijkstra最短路 Huffman哈夫曼树 贪心算法几乎每次。NOIP。CSP。都会见到。本课总结今天我们认识了Priority Queue优先队列。它最大的特点就是不是谁先来谁先走而是谁的优先级高谁先出来。掌握了五个常用成员函数成员函数作用生活中的理解push(x)加入元素新选手进入排行榜pop()删除优先级最高的元素第一名离场top()查看当前第一名看冠军是谁size()元素个数排行榜人数empty()是否为空排行榜是否为空默认排序规则写法排序结果priority_queueint最大值优先最大堆priority_queueint, vectorint, greaterint最小值优先最小堆同学们只要记住一句口诀默认最大greater最小。Queue、Stack、Priority Queue 三兄弟对比容器中文名称谁先出来生活中的例子queue队列先来的先出来FIFO排队买票、排队打饭stack栈后来的先出来LIFO叠盘子、撤销操作priority_queue优先队列最大的或最小的先出来成绩排行榜、比赛排名、急诊分诊画一张总结图Queue排队 ① → ② → ③ → ④ 出来 ①②③④ Stack盘子 ④ ③ ② ① 出来 ④③②① Priority Queue排行榜 100 95 88 80 70 出来 1009588……这里表示按优先级依次取出。今天同学们知道了sort是给所有人排队priority_queue更像是随时维护排行榜。这样以后学习 Top K、堆、贪心算法时我们会可以考虑使用优先队列。

相关新闻

Codex技能生态:模块化AI开发工具实战指南

Codex技能生态:模块化AI开发工具实战指南

1. Codex技能生态概览:为什么开发者都在关注?Codex技能(Codex Skills)正在成为开发者社区的新宠,这个开源的技能生态系统允许用户通过模块化方式扩展AI能力。不同于传统的单一功能工具,Codex技能采用了&quo…

2026/7/22 3:28:17阅读更多 →
Windows高效工具推荐与避坑指南

Windows高效工具推荐与避坑指南

1. Windows生态下的应用选择困境作为一名从Windows 95时代就开始使用微软系统的老用户,我见证了Windows应用生态的兴衰变迁。现在的Microsoft Store虽然比早期有了长足进步,但依然无法与移动端的应用商店相提并论。Windows平台的开放性既是优势也是挑战—…

2026/7/22 3:28:17阅读更多 →
用户中心系统设计:认证、权限与会话管理实践

用户中心系统设计:认证、权限与会话管理实践

1. 用户中心系统设计概述 用户中心是现代互联网产品的基础设施,就像一栋大楼的地基和门禁系统。它负责管理用户从注册、登录到权限控制的整个生命周期。我参与过多个百万级用户量的用户中心系统设计,发现很多团队在初期都会低估这个模块的复杂性。 一个…

2026/7/22 3:28:17阅读更多 →
YOLOv5在数据挖掘中的精度优化与工业实践

YOLOv5在数据挖掘中的精度优化与工业实践

1. YOLOv5在数据挖掘中的精度突破实践在计算机视觉与数据挖掘的交叉领域,目标检测技术正经历着从单纯识别到智能分析的范式转变。YOLOv5作为当前工业界最受欢迎的实时目标检测框架,其v6.1版本在COCO数据集上达到56.8% AP精度,同时保持140FPS的…

2026/7/22 4:38:30阅读更多 →
AIGC检测技术在教育中的应用与挑战

AIGC检测技术在教育中的应用与挑战

1. 项目背景与核心挑战去年某高校首次引入AIGC检测机制时,发生了戏剧性一幕:一位学生提交的原创论文被系统判定为"AI生成概率72%",而实际调查发现,这篇关于方言保护的论文确实存在大量重复短语——这正是方言研究的典型…

2026/7/22 4:38:30阅读更多 →
RocketMQ Producer消息组成与发送链路深度解析

RocketMQ Producer消息组成与发送链路深度解析

1. RocketMQ Producer消息组成与发送链路解析作为分布式消息中间件的核心组件,RocketMQ Producer承担着消息生产与投递的重要职责。本文将深入剖析Producer内部的消息组成结构和完整的发送链路实现机制,帮助开发者理解消息从创建到投递的全过程。1.1 消息…

2026/7/22 4:38:30阅读更多 →
TMS320F2837xS uPP DMA控制器实战:原理、配置与性能调优

TMS320F2837xS uPP DMA控制器实战:原理、配置与性能调优

1. 项目概述与uPP DMA核心价值在嵌入式系统,尤其是像TMS320F2837xS这样的高性能实时微控制器应用中,数据搬移的效率往往是决定系统性能的瓶颈。无论是从高速ADC采集数据,还是向DAC发送波形,或是与外部FPGA进行大块数据交换&#x…

2026/7/22 4:38:30阅读更多 →
C++17 std::lcm:原理、应用与安全实践指南

C++17 std::lcm:原理、应用与安全实践指南

1. 项目概述:为什么我们需要关注 std::lcm?在C的日常开发中,尤其是涉及算法、图形学、物理模拟或者任何需要处理周期、步长、同步的场景时,计算两个整数的最小公倍数(Least Common Multiple, LCM)是一个高频…

2026/7/22 4:38:30阅读更多 →
C++在复杂系统开发中的核心优势与全链路优化实战

C++在复杂系统开发中的核心优势与全链路优化实战

1. 项目概述:为什么C依然是复杂系统的基石在当今这个充斥着Python、Go、Rust等现代语言的时代,每当提起C,总有人会问:“它是不是过时了?” 作为一名在金融交易系统和工业仿真领域摸爬滚打了十多年的老兵,我…

2026/7/22 4:36:30阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 0:53:59阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 0:53:59阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 0:53:59阅读更多 →
中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业做小程序,最常见的矛盾是预算有限,但又不希望功能太单薄;没有技术团队,但又希望后续能自己运营;想快速上线,又担心隐性收费和售后失联。选型时如果只看“低价套餐”或“案例数量”,很容…

2026/7/22 0:01:17阅读更多 →
GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

企业做营销,最怕钱花完了,资产没有留下。 效果广告能带来一段时间的曝光,但预算停止后,流量往往也随之停止。短视频内容可能在几天内冲高,也可能很快沉下去。AI搜索时代,企业需要重新思考一个问题&#xff…

2026/7/22 0:01:17阅读更多 →
Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复 一、你的 Agent 在"再想想"的循环里绕了 12 轮,用户已经关窗口了 Agent 与人最大的区别是:人知道什么时候该停下来给答案,Agent 会一直"想"下去。你给 Agent 接…

2026/7/22 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/21 22:53:50阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/21 18:53:30阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/21 18:53:30阅读更多 →