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 @ 2020-02-14 17:53  txwtech  阅读(228)  评论(0编辑  收藏  举报