//priority_queue的使用
#include<bits/stdc++.h>
using namespace std;
int main()
{
priority_queue<int> pq;//大顶堆
//可定义priority_queue<Type, Container, Functional>
//Type是数据类型,Container是容器类型(vector,deque,map)不能用list默认为vector
//Functional是比较的方法,默认降序(大根堆)
//升序:priority_queue<int,vector<int>,greater<int> > q;
for(int i = 1;i < 5;i++)
{
pq.push(i);//queue.push(n);插入一个元素到队尾并排序
}
cout<<pq.size()<<endl;//queue.size();返回队列元素个数
while(!pq.empty())//queue.empty();若队列为空返回true
{
cout<<pq.top()<<' '; //访问队头元素
pq.pop(); //弹出队头元素 (不返回值)
}
cout<<endl;
priority_queue< pair<int,int> > a; //pair捆绑两个元素,pair<Type,Type>第一个为key,第二个为value
pair<int,int> para1(1,2);//可以通过para1.first访问key,para1.second访问value
pair<int,int> para2(1,3);
pair<int,int> para3(2,3);
a.push(para1);
a.push(para2);
a.push(para3);//先比较key大小,大的往前排,再比较value大小
while(!a.empty())
{
cout<<a.top().first<<' '<<a.top().second<<endl;
a.pop();
}
return 0;
}
C++ STL库优先队列(priority_queue)的使用
最新推荐文章于 2024-01-06 17:18:17 发布