STL中优先队列的使用方法

转载请注明出处: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<操作符来比较元素中的优先级。

//在重载“<”时,最好不要重载“>”,可能会发生编译错误。



你可能感兴趣的:(优先队列的定义与使用)