C++ priority_queue(優先佇列)
阿新 • • 發佈:2021-07-16
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類似,在此不贅述。