c++ 结构体内置函数不同写法的不同效果
使用的测试代码:
#include<bits/stdc++.h>
using namespace std;
struct node {
int a,b;
bool operator < (const node &e) const {
return b > e.b;
}
};
int main() {
priority_queue<node,vector<node>,less<node>>q;
// priority_queue<node,vector<node>,greater<node>>q;
for(int i=1;i<=10;i++) {
q.push({i,i});
}
while(q.size()) {
node op=q.top();
q.pop();
cout<<op.b<<' ';
}
cout<<endl;
}
在这样的排序结构中,是有两个大于号(小于号)的,依次来说。
1.
对于这个符号,当优先队列定义为小根堆时,只能使用‘>’号,否则会报错。
而定义为大根堆时,只能使用‘<'号。
2.
我们知道,在优先队列中这里的符号与优先队列中存储的方式是相反的。
由此:
1.当优先队列为小根堆时
若为’>'号则和小根堆排列方式相同从小到大排序。
相反则从大到小排序。
2.当优先队列为大根堆时
若为‘<'号则和大根堆排列方式相同从大到小排序。
否则便从小到大排序
总结:两个判断符号相同的话与定义的堆排列方式相同,否则相反
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具