Priority_queue详解
.push(x)
.pop()
.top()
.size()
.empty()
priority_queue<Type, Container, Functional>
Type 就是数据类型,Container 就是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的是vector),Functional 就是比较的方式,当需要用自定义的数据类型时才需要传入这三个参数,使用基本数据类型时,只需要传入数据类型,默认是大顶堆
一般是:
对于基础类型 默认是大顶堆
priority_queue <int,vector<int>,greater<int> > q; 升序
priority_queue <int,vector<int>,less<int> > q; 降序
//greater和less是std实现的两个仿函数
头文件 include<queue> include<iterator>
队列 priority_queue<类型> 名称
越大越优先
优先级自定义(运算符重载):
Struct Node{
int w,v
}
bool operator <(const Node &a,const Node &b){
return a.v>b.v (按照V从小到大输出)
}