转载:
http://blog.csdn.net/hongxdong/article/details/5559046
通过
收获:
(1)cout << q.top() << ' '; //queue当中是q.front();(2)vector的下标是从0开始的
(3)存入struct方式的priority_queue,方法如下
最好的方式:这个简洁!
struct Node { int x,y; bool operator <(Node a) const { return y < a.y; } bool operator >(Node a) const { return y > a.y; } }; priority_queue<Node> A; //大根堆 priority_queue<Node, vector<Node>, greater<Node> > B; //小根堆
方式二:(cmp将结构体以val由大到小排列,组成大根堆)一般也用这个!
struct Node {int adj; int val; }; struct cmp {bool operator()(Node a,Node b) { return a.val > b.val; } }; priority_queue<Node,vector<Node>,cmp>Q;