priority_queue的接口可以很容易的搜到,这里不再赘述。
见如下定义,cmp函数中,a<b,定义了一个最大堆。若是a>b,则定义了一个最小堆。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 struct cmp 2 { 3 bool operator()(const Node &a,const Node &b) 4 { 5 return a.ubound<b.ubound; 6 } 7 }; 8 9 priority_queue<Node,vector<Node>,cmp> activeNodes;
至于为什么函数放在struct中,,我也不是很清楚。网上的使用大都是这样的,经过个人的实验,这样也没错。