1. 程式人生 > 其它 >C++優先佇列使用

C++優先佇列使用

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 交換內容