头文件:
#include <queue>
定义:
1.大根堆,从小到大输出
priority_queue<int> q1;
2.小根堆
priority_queue<int,vector<int>, greater<int> > q2;
3.自定义
struct node
{
int y,weight;
friend bool operator < (node n1,node n2) //定义一个函数!
{
return n1.weight>n2.weight; //"<"为从大到小,">" 为从小到大
}
};
priority_queue<Node> q;
用法:
跟queue差不多
唯一不同就是:
取队首用q.top()
而不是q.front()
此代码为堆优化的spfa(例子):https://blog.csdn.net/scutbenson/article/details/81320460