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类似,在此不赘述。

 

posted @ 2021-07-16 09:35  mshentai  阅读(368)  评论(0编辑  收藏  举报