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 }
复制代码

 

posted @   txwtech  阅读(229)  评论(0编辑  收藏  举报
编辑推荐:
· 基于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)
点击右上角即可分享
微信分享提示