cb05a_c++_STL优先级队列priority_queue_less_greater
/*cb05a_c++_STL优先级队列priority_queue
自适应容器(容器适配器):不能使用list,list不能使用随机操作
最大值优先级队列,
//把数据放在队列里面是,最大的始终都是放在最前面。
最小值优先级队列
//把数据放在队列里面是,最小的始终都是放在最前面。
优先级队列适配器,STL priority_queue
priority_queue<int,deque<int>> pq;
priority_queue<int,vector<int>> pq;
priority_queue<int, vector<int>> pq;//默认最大值优先级,它的谓词是less<int>,如:priority_queue<int,vector<int>,less<int>> pq1,大到小
priority_queue<int, deque<int>,greater<int>> pq2; //最小值优先级,greater<int>谓词,小到大
pq.empty();
pq.size();
pq.top();
pq.pop();
pq.push(item);
*/
1 /*cb05a_c++_STL优先级队列priority_queue 2 自适应容器(容器适配器):不能使用list,list不能使用随机操作 3 最大值优先级队列, 4 //把数据放在队列里面是,最大的始终都是放在最前面。 5 最小值优先级队列 6 //把数据放在队列里面是,最小的始终都是放在最前面。 7 优先级队列适配器,STL priority_queue 8 priority_queue<int,deque<int>> pq; 9 priority_queue<int,vector<int>> pq; 10 11 priority_queue<int, vector<int>> pq;//默认最大值优先级,它的谓词是nice?next? 12 priority_queue<int, deque<int>,greater<int>> pq2; //最小值优先级,greater<int>谓词 13 14 pq.empty(); 15 pq.size(); 16 pq.top(); 17 pq.pop(); 18 pq.push(item); 19 */ 20 #include <iostream> 21 #include <vector> 22 #include <queue>//最大最小优先级都在这个头文件里面的 23 24 using namespace std; 25 26 int main() 27 { 28 priority_queue<int, vector<int>> pq;//默认最大值优先级,它的谓词是less<int>如:priority_queue<int,vector<int>,less<int>> pq1; 29 priority_queue<int, deque<int>,greater<int>> pq2; //最小值优先级,它的谓词是greater<int> 30 31 priority_queue<int> pq3;//默认是适配vector 32 33 pq3.push(20); 34 pq3.push(30); 35 pq3.push(10); 36 cout << "优先级队列里面有多少个数据呢: "<<pq3.size() << endl; 37 cout << pq3.top() << endl; 38 while (!pq3.empty()) 39 { 40 cout << "从优先级队列里面删除: " << pq3.top() << endl; 41 pq3.pop(); //从最前面的数据开始删除,总是删除的最大的数据。 42 } 43 44 pq2.push(20); 45 pq2.push(30); 46 pq2.push(10); 47 cout << "最小优先级队列里面有多少个数据呢: " << pq2.size() << endl; 48 cout << pq2.top() << endl; 49 50 51 return 0; 52 }
欢迎讨论,相互学习。
cdtxw@foxmail.com
分类:
C++
标签:
priority_queue
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)