priority_queue是C++的优先队列,优先队列是指具有在出队时,最高优先级的元素先出特征的队列。

其头文件为#include <queue>

priority_queue操作与queue类似,但priority_queue在入队和出队时会对内部元素按规则进行排序。

其定义为



template<class _Ty,class _Container = vector<_Ty>,class _Pr = less<typename _Container::value_type> >
class priority_queue


 

_Ty 是指队列元素的数据类型

_Container 是指队列的容器类型,默认是vector,只能使用顺序存储的容器如vector,不能使用链式存储的容器如list。

_Pr 是指排序的规则,默认是 less<>,即降序排列,大顶堆,可修改为greater<>,greater_equal<>,less_equal<>等,也可进行自定义,以less_equal为例:



struct less_equal
{
constexpr bool operator()(const _Ty& _Left, const _Ty& _Right) const
{
return (_Left <= _Right);
}
};


操作与queue类似,在此不赘述。