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