優先隊列問題

優先隊列問題

就是一個隊列按照從小到大事先排好序了node

priority_queue<int>pque;   //從大到小輸出的隊列

priority_queue<int, vector<int>, less<int>>s;                 //less表示按照遞減(從大到小)的順序插入元素
priority_queue<int, vector<int>, greater<int>>s;              //greater表示按照遞增(從小到大)的順序插入元素less

幾個比較重要的函數函數

基本操做:spa

empty()      若是隊列爲空,則返回真code

pop()    刪除對頂元素,刪除第一個元素blog

push()        加入一個元素隊列

size()      返回優先隊列中擁有的元素個數it

top()     返回優先隊列對頂元素,返回優先隊列中有最高優先級的元素io

在默認的優先隊列中,優先級高的先出隊。在默認的int型中先出隊的爲較大的數。編譯

struct cmp { bool  operator()(int x,int y) { return  x>y; } };
priority_queue<int,vector<int>,cmp>pque;    //定義方法

 

 

struct node { int a,b; friend bool operator<(node x,node y)   { return x.a<y.a; } }v[500];

 //在重載」<」時,最好不要重載」>」,可能會發生編譯錯誤

相關文章
相關標籤/搜索