转载请注明出处:http://blog.csdn.net/a1dark
头文件
#include<queue>
声明方式:
1、普通方法:
priority_queue<int>q;
2、自定义优先级:
struct cmp{
bool operator()(int x,int y){
return x>y;
}
}
priority_queue<int ,vector<int>,cmp>q;//其中第二个参数为容器类型。第三个参数为比较函数。
3、结构体声明方式:
struct node{
int x,y;
friend bool operator<(node a,node b){
return a.x>b.x;//结构体中,X小的优先级高
}
};
priority_queue<node>q;
//在该结构中,Y为值,X为优先级。
//通过自定义operator<操作符来比较元素中的优先级。
//在重载“<”时,最好不要重载“>”,可能会发生编译错误。