1.头文件
#include<queue>
2.定义
1.priority_queue<Type, Container, Functional>
字符串类型:
priority_queue<string,vector<string>,myComp > q;
结构体类型:
priority_queue<Info,vector<Info>,myComp > q;
Type是数据类型,Container是容器类型(此容器必须是数组实现的容器,比如vector,deque,但不能是list。STL中默认为vector)Functional是比较方式,当使用自定义比较方式时需要传入这三个参数。
2.priority_queue<int>
这样定义的优先队列元素的默认排序为由大到小,相当于
priority_queue<int,vector<int>, less<int> >q;
由小到大为
priority_queue<int,vector<int>,greater<int> >q;
’"greater"和"less"都是STL中的两个仿函数(就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了)。