优先队列

调用priority_queue<int> pq; 默认为最大堆

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <queue>
 4 using namespace std;
 5 int main()
 6 {
 7     priority_queue<int> pq;
 8     pq.push(3);
 9     pq.push(5);
10     pq.push(1);
11     while(!pq.empty()){
12         //获取并删除最大值
13         cout<<pq.top()<<endl;
14         pq.pop();
15     }
16     //5 3 1
17     return 0;
18 }

调用下面的可以指定最大堆或者最小堆

priority_queue<int,vector<int>,less<int> > p;
priority_queue<int,vector<int>,greater<int> > q;

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <queue>
 4 using namespace std;
 5 int main()
 6 {
 7     priority_queue<int,vector<int>,less<int> > p;
 8     priority_queue<int,vector<int>,greater<int> > q;
 9     p.push(3);
10     p.push(5);
11     p.push(1);
12     q.push(3);
13     q.push(5);
14     q.push(1);
15     while(!p.empty()){
16         //获取并删除最大值
17         cout<<p.top()<<" ";//5 3 1
18         p.pop();
19     }
20     cout<<endl;
21     while(!q.empty()){
22         //获取并删除最小值
23         cout<<q.top()<<" ";//1 3 5
24         q.pop();
25     }
26     return 0;
27 }
posted @ 2018-12-30 18:40  wydxry  阅读(260)  评论(0编辑  收藏  举报
Live2D