C++ priority_queue(优先队列)
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类似,在此不赘述。