C++優先佇列使用
阿新 • • 發佈:2021-07-17
C++優先佇列:在優先佇列中,元素被賦予優先順序。當訪問元素時,具有最高優先順序的元素最先刪除。優先佇列具有最高階先出 (first in, largest out)的行為特徵。
std::priority_queue<CellData> Q;
//升序佇列,小頂堆 priority_queue <int,vector<int>,greater<int> > q; //降序佇列,大頂堆 priority_queue <int,vector<int>,less<int> >q; //greater和less是std實現的兩個仿函式(就是使一個類的使用看上去像一個函式。其實現就是類中實現一個operator(),這個類就有了類似函式的行為,就是一個仿函式類了)
優先佇列具有佇列的所有特性,包括佇列的基本操作,只是在這基礎上添加了內部的一個排序,它本質是一個堆實現的。
和佇列基本操作相同:
- top 訪問隊頭元素
- empty 佇列是否為空
- size 返回佇列內元素個數
- push 插入元素到隊尾 (並排序)
- emplace 原地構造一個元素並插入佇列
- pop 彈出隊頭元素
- swap 交換內容