c 學習筆記 佇列

2021-10-04 10:42:25 字數 1432 閱讀 4250

標頭檔案:

#include

定義:

queue<

typename

> name;

//typename為任意資料型別,name為所定義佇列名

常用函式:

函式名返回值q.empty( )

判斷佇列是否為空

q.size( )

返回當前佇列元素個數

q.pop( )

刪除隊首元素

q.push(x)

向隊尾新增元素

q.front( )

返回隊頭元素

q.back( )

返回隊尾元素

簡介:

即資料結構中的堆,不按照入隊順序輸出元素,而是根據關鍵字優先順序輸出,預設是從大到小輸出。

標頭檔案:

#include

定義:

預設方式,隊內元素按照從大到小排列

priority_queue<

typename

> name;

//typename為任意資料型別,name為所定義優先佇列名

變式1:隊內元素按照從小到大排列

priority_queue name;

/**第乙個引數表示資料的型別;

第二個引數儲存該資料型別資料的容器(預設情況下為vector)

第三個引數表示自定義的優先順序規則(greater表示從小到大,預設為less,表示從大到小)

**/priority_queue<

int, vector<

int>

, greater<

int>

> q;

//隊內元素從小到大排列,小頂堆

priority_queue q;

//隊內元素從大到小排列,大頂堆

//這裡要有個空格,否則會被識別為右移符號

變式2:資料型別不再是基本資料型別,而是自定義型別

//方法1:在結構體內過載運算子<

struct data

}//方法2:重寫operator()

struct data

struct comp

}priority_queue

, comp> q;

常用函式:(僅給出與佇列有差別的函式)函式

作用q.top( )

輸出優先佇列的隊首元素,即堆頂元素

有機會再更原理,現在還沒學…

C 學習筆記之 STL 佇列

一.引言 在演算法以及資料結構的實現中,很多地方我們都需要佇列 遵循fifo,先進先出原則 為了使用佇列,我們可以自己用陣列來實現佇列,但自己寫太麻煩不說,並且還很容易出錯。好在c 的stl 標準模板庫 為我們實現了乙個強大的佇列,它包含在標頭檔案中。二.queue a 建構函式 下面用例子來展示q...

C語言學習筆記 佇列

佇列 queue 簡稱隊 它也是 一種操作受限的線性表,其限制為僅允許在表的一端進行插入操作,而在表的另一端進行刪除操作。把進行插入的一端成為隊的隊尾 rear 把進行刪除的一端稱為隊頭或隊首 front 向佇列中插入新元素稱為進隊或入隊 enqueue 新元素進隊後就成為新的隊尾元素 從佇列中刪除...

C 佇列學習筆記 RabbitMQ優先順序佇列

在具體業務中可能會遇到一些要提前處理的訊息,比如普通客戶的訊息按先進先出的順序處理,vip客戶的訊息要提前處理。在rabbitmq中,訊息優先順序的實現方式是 在宣告queue時設定佇列的x max priority屬性,然後在publish訊息時,設定訊息的優先順序即可。rabbitmq優先順序佇...