C++ priority_queue的用法,一看就会用

Posted little_match

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ priority_queue的用法,一看就会用相关的知识,希望对你有一定的参考价值。

头文件 : 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; //大顶堆
    }
};

以上是关于C++ priority_queue的用法,一看就会用的主要内容,如果未能解决你的问题,请参考以下文章

C++中 priority_queue 的用法总结

c++优先队列(priority_queue)用法详解

C++ 优先队列 堆 priority_queue的使用 以及内部使用结构化pair的排序的用法 auto在其中的用法(结构化绑定 C++17以上)

C++ 优先队列 堆 priority_queue的使用 以及内部使用结构化pair的排序的用法 auto在其中的用法(结构化绑定 C++17以上)

[转]c++优先队列(priority_queue)用法详解

Python正则表达式(一看就懂)