C 中的queue使用總結

2021-10-06 21:43:46 字數 1833 閱讀 8862

queue是佇列,是一種先進先出的資料結構

類模板如下:

template

<

classt,

class

cont

= deque

>

class

queue

;

cont指定實現的型別,預設是deque,也可以用list

定義佇列的示例:

queue<

int> q;

q.

push

(i);

//將i新增到佇列末尾

q.pop()

;//彈出佇列第乙個元素

q.top()

;//返回或修改第乙個元素

q.front()

;//返回或修改第乙個元素 這兩個成員函式在不同的編譯器有不同的支援

q.size()

;//返回佇列元素個數

q.empty()

;//判斷佇列是否為空

q.back()

;//返回佇列最後乙個元素

優先佇列

優先佇列就是對佇列中的元素進行排序。

預設用vector實現,也可以用deque實現

類模板定義:

template

<

classt,

class

container

= vector

,class

compare

= less

>

class

priority_queue

;

t的元素型別

container是容器型別

compare的元素比較器

與set不同,priority_queue是用堆排序來實現的,所以元素在內部不是有序的,但是總還是能保證最大的元素在堆頂

優先佇列定義:

priority_queue

//公升序佇列

priority_queue <

int,vector<

int>

,greater<

int>

> q;

//降序佇列

priority_queue <

int,vector<

int>

,less<

int>

>q;

//greater和less是std實現的兩個函式物件類(就是使乙個類的使用看上去像乙個函式。其實現就是類中實現乙個operator(),這個類就有了類似函式的行為,就是乙個函式物件類了)

q.

push()

;q.top();

//返回優先佇列最上邊的元素

q.pop()

;q.empty()

;q.size()

;

如果是自定義的結構體,可以進行運算子的過載來進行比較排序。

舉例:

priority_queue<

int> q;

q.push(2

);q.push(5

);q.push(6

);q.push(3

);cout

(q.empty()

==false

)cout

<

465

320

STL中queue的使用

基本操作 empty 如果隊列為空返回真 pop 刪除對頂元素 push 加入乙個元素 size 返回優先佇列中擁有的元素個數 top 返回優先佇列對頂元素 在預設的優先佇列中,優先順序高的先出隊。在預設的int型中先出隊的為較大的數。使用方法 標頭檔案 include 宣告方式 1 普通方法 pr...

C STL中queue的使用

queue模版需要定義兩個模版引數,乙個是元素型別,乙個是容器型別,元素型別是必要的,容器型別是可選的,預設為dqueue型別。定義queue物件的示例 如下 queueq1 queueq2 queue的基本操作有 1.入隊 如q.push x 將x元素接到佇列的末端 2.出隊 如q.pop 彈出佇...

C 佇列Queue的使用

今天用到的c 內建的queue佇列來進行重試機制。基本的用法就是入佇列 enqueue 出佇列 dequeue 介面拉取資料,介面可能不穩定會拉取失敗,我將失敗的記錄存入了queue然後進行重試,直到全部成功為止。queue errorqueue new queue 將所有失敗的記錄都存入佇列 er...