優先佇列使用方法

2021-07-10 12:16:48 字數 1120 閱讀 2171

前幾天做哈夫曼的貪心,想自己模擬搞就是寫不對

於是弄了個優先佇列水過

乾脆總結下

標頭檔案:#include

成員函式:

empty

true if the priority queue has no elements

popremoves the top element of a priority queue

push

adds an element to the end of the priority queue

size

returns the number of items in the priority queue

topreturns the top element of the priority queue

常用的也是這麼幾個

使用方法:

判斷是否為空:

if (q.empty()) ...

彈出元素:

q.pop();

插入元素:

q.push(x);

其中x必須是q所申明的優先佇列的元素型別

清除原佇列(尤其是多組資料的時候記得注意):

while(!q.empty()) q.pop();

priority_queueq;

其中是變數的型別,可以任意型別。

q是queue佇列名稱

priority_queue,greater> q;

多級變數排序的時候需要自定義結構體變數

struct node{

int x,y;

friend bool operator < (node n1,node n2){

if (n1.x!=n2.x) return n1.xq;

從上面的小於號的過載可以看得出來,node中是以x為第一級排序,以y為第二級排序。公升序還是降序呢?

大家自己去做試驗吧!

優先佇列使用方法

優先佇列的使用方法,在網上看了許多,這個很好 那麼何為優先佇列呢,在優先佇列中,元素被賦予優先順序,當訪問元素時,具有最高端優先順序的元素先被訪問。即優先佇列具有最高端先出的行為特徵。優先佇列在標頭檔案 include 中 其宣告格式為 priority queue ans 宣告乙個名為ans的整形...

c 優先佇列使用方法

定義友元函式,過載某定義的資料結構的 操作符號,以下是優先佇列中的最大堆的定義 預設為最小堆 elemetype資料結構中的num元素小的優先輸出 最小堆 過載小於符號,num最小的優先輸出 friend bool operator const elemtype e1,const elemtype ...

c 優先佇列的使用方法

include include include using namespace std struct node int priority int value int main 示例1 priority queueqi 普通的優先順序佇列,按從大到小排序 for i 0 i len i qi.push...