news 2026/5/7 16:10:52

结构体优先队列

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
结构体优先队列

要想使用结构体的优先队列, 需要在结构体内部重载小于号。

struct node { int x, y; bool operator < (const node & a) const { return x<a.x; } };

一个 node 结构体有两个成员,x 和 y,它的小于规则是 x 小者小。

它也是按照重载后的小于规则,从大到小排序的。

priority_queue <node> q; int main() { k.x = 10, k.y = 100; q.push(k); k.x = 12, k.y = 60; q.push(k); k.x = 14, k.y = 40; q.push(k); k.x = 6, k.y = 80; q.push(k); k.x = 8, k.y = 20; q.push(k); while (!q.empty()) { node m = q.top(); q.pop(); printf("(%d,%d) ", m.x, m.y); } }

程序大意就是插入(10,100), (12,60), (14,40), (6,80), (8,20) 这五个 node

再来看看它的输出:

(14,40) (12,60) (10,100) (8,20) (6,80)

就是按照 x 从大到小排序的。

除了重载运算符之外,还有一种方法可以自定义结构体如何比较大小,这需要自己定义一个新的结构体,专门用作比较。

struct node { int to, cost; }; //定义一个专门用作比较的结构体 struct cmp { bool operator() (node a, node b) { return a.cost > b.cost; } }; priority_queue<node,vector<node>, cmp> priq;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/7 16:10:10

多模型聚合平台在嵌入式开发中的实际用量与成本观测体验

多模型聚合平台在嵌入式开发中的实际用量与成本观测体验 嵌入式开发工作流中&#xff0c;频繁调用大模型进行代码解释、生成和调试已成为提升效率的常见手段。这类任务通常涉及对特定硬件架构、底层驱动或实时系统的理解&#xff0c;需要模型具备较强的逻辑推理和代码生成能力…

作者头像 李华
网站建设 2026/5/7 16:00:31

为Gemini CLI打造AI开发全家桶:模块化配置提升编码效率

1. 项目概述&#xff1a;为你的Gemini CLI打造“全家桶”式开发环境 如果你和我一样&#xff0c;在日常开发中重度依赖AI助手&#xff0c;那你肯定对Claude和Gemini这类工具不陌生。但不知道你有没有遇到过这样的痛点&#xff1a;每次开启一个新项目&#xff0c;或者想用AI完成…

作者头像 李华
网站建设 2026/5/7 15:59:41

在 Python 项目中配置 Taotoken 作为 OpenAI SDK 的替代后端

在 Python 项目中配置 Taotoken 作为 OpenAI SDK 的替代后端 对于已经使用 OpenAI 官方 Python SDK 进行开发的工程师来说&#xff0c;将后端服务切换到 Taotoken 平台是一个平滑的过程。你无需重构代码逻辑&#xff0c;核心操作是调整客户端的初始化参数&#xff0c;使其指向…

作者头像 李华
网站建设 2026/5/7 15:57:48

基于nano banana pro的AI PPT生成工具banana-slides部署与实战指南

1. 项目概述&#xff1a;告别PPT焦虑&#xff0c;用AI重塑演示文稿创作 明天就要汇报&#xff0c;PPT还是一片空白&#xff1b;脑子里有无数想法&#xff0c;却被繁琐的排版和设计消磨殆尽——这几乎是每个职场人、学生都经历过的噩梦。传统的PPT制作工具&#xff0c;无论是Po…

作者头像 李华