1. 程式人生 > >priority_queue用法簡記

priority_queue用法簡記

truct 使用 c++ stl 結構 str gre 但是 都是 stl

堆是一種很常用的數據結構,自己手打堆當然可以,但是為了不必要的出錯,一般可以選擇c++ STL中的優先隊列priority_queue。

首先是庫的調用。

#include<queue>
using namespace std;

然後就是優先隊列的聲明。

priority_queue<int> q; //默認q是大根堆

如果要使用小根堆,可以這樣寫。

priority_queue<int,vector<int>,greater<> > q;
//那個vector<int>代表存放數據的容器,greater<>代表元素比較方式
//註意最後要寫成> >,盡量避免被認為是>>運算符

當然如果數據類型是自定義結構體的話,還可以通過重載運算符的方式。

struct s {
    int w;
    bool operator < (const s& rhs) const { //都是重載<運算符
        return w>rhs.w;
    }
};

priority_queue用法簡記