1. 程式人生 > 其它 >C++ priority_queue(優先佇列)

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類似,在此不贅述。