头文件 : include <queue>

定义 : priority_queue<Type, Container, Functional>

默认 : ==大顶堆==,比拟形式默认用operator< ,所以如果把前面2个参数缺省的话,优先队列就是大顶堆(降序),队头元素最大

个别应用 :

// 留神 >>和 > >, c++11之后能够不必加空格// 大顶堆priority_queue<int, vector<int>, less<int> > q;// 小顶堆priority_queue<int, vector<int>, greater<int> > q;//greater 和 less 是 std 实现的两个仿函数//(就是使一个类的应用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了相似函数的行为,就是一个仿函数类了)// pair<int, int> 默认大顶堆,先比拟第一个,再比拟第二个;priority_queue<pair<int, int> > q;// 2 5// 2 4// 1 6// 自定义优先级// struct Node //运算符重载<struct Node{    int x;    Node(int a) : x(a){}    bool operator<(const Node& a) const // 返回 true 时 a的优先级高    {        return x < a.x; //大顶堆    }};