C++ STL 优先队列

//优先队列
//Priority_queue
//STL
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<queue>
using namespace std;
struct cmp{
bool operator() (const int a,const int b) const{//用const定义的a,b是包裹着变量外衣的常数,不可更改
return a>b;
}
};
int main()
{
priority_queue< int,vector<int>,cmp>que1;//似乎用priority_queue< int>的话不能更改排序方式
//只能按照初始时越小的数优先度越小的方式排列
priority_queue< int,vector<int>,greater<int> >que2[2];//实际上que1和que2是一样的
priority_queue< int,vector<int> >que3;
priority_queue< int,vector<int>,less<int> >que4;//同理,它和que3是一样的
int a[]={0,17,21,3,4,54,65,17,8,};//注意不能去重
for(int i=0;i<9;i++)
{
que4.push(a[i]);
que2[0].push(a[i]);
}
cout<<"size:"<<que2[0].size()<<' '<<que4.size()<<endl;
cout<<"que2:"<<endl;
while(!que2[0].empty())
{
cout<<que2[0].top()<<' ';
que2[0].pop();
}
cout<<endl<<"que4"<<endl;
while(!que4.empty())
{
cout<<que4.top()<<' ';
que4.pop();
}
return 0;
}

posted @ 2017-04-12 20:07  车前草病毒  阅读(154)  评论(0编辑  收藏  举报