priority_queue用法简记

Posted mr94kevin

tags:

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

堆是一种很常用的数据结构,自己手打堆当然可以,但是为了不必要的出错,一般可以选择c++ STL中的优先队列priority_queue。

首先是库的调用。

#include<queue>
using namespace std;

然后就是优先队列的声明。

priority_queue<int> q; //默认q是大根堆

如果要使用小根堆,可以这样写。

priority_queue<int,vector<int>,greater<> > q;
//那个vector<int>代表存放数据的容器,greater<>代表元素比较方式
//注意最后要写成> >,尽量避免被认为是>>运算符

当然如果数据类型是自定义结构体的话,还可以通过重载运算符的方式。

struct s {
    int w;
    bool operator < (const s& rhs) const { //都是重载<运算符
        return w>rhs.w;
    }
};

 

以上是关于priority_queue用法简记的主要内容,如果未能解决你的问题,请参考以下文章

priority_queue用法

priority_queue(堆)干货归纳+用法示例

SGI-STL简记-适配器(容器迭代器仿函数)

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

STL —— priority_queue的用法及实例

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