STL標準模板庫 queue及deque

2021-09-27 08:55:31 字數 2062 閱讀 5794

是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。

佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元素稱為出隊。因為佇列只允許在一端插入,在另一端刪除,所以只有最早進入佇列的元素才能最先從佇列中刪除,故佇列又稱為先進先出(fifo—first in first out)

c++佇列

queue

模板類的定義在標頭檔案中,queue 模板類需要兩個模板引數,乙個是元素型別,乙個容器型別,元素型別是必要的,容器型別是可選的,預設為deque 型別。

c++佇列queue類成員函式有:

back() 返回最後乙個元素

empty() 如果佇列空則返回真

front() 返回第乙個元素

pop() 刪除第乙個元素

push() 在末尾加入乙個元素

size() 返回佇列中元素的個數

例如0-5,共5個元素,我們對其進行入隊出隊操作:

**例:

#include

#include

using

namespace

std;

intmain

()

for(

int i=

0; !myq.empty(); i++)

myq.push(

8);//在佇列的最後一位新增乙個元素

printf(

"佇列壓入的元素為:%d\n",myq.back());

return

0;

}

輸出結果為

優先佇列:c++優先佇列類似佇列,但是在這個資料結構中的元素按照一定順序排列。

成員函式有:

1.empty() 如果優先隊列為空,則返回真

2.pop() 刪除第乙個元素

3.push() 加入乙個元素

4.size() 返回優先佇列中擁有的元素的個數

5.top() 返回優先佇列中有最高優先順序的元素

例**:

#include

#include

using

namespace

std;

intmain

()

for(

int i=

1;i<=

5;i++)

return

0;

}

我們輸入亂序的一堆數,在輸出的時候我們可以看到,這些數是按照誰最大誰先輸出

現在對優先佇列進行自定義安排優先順序,這裡我們自定義了兩個佇列,它們的優先順序相反

**:

#include

#include

#include

using

namespace

std;

struct

node

} a;

struct

node1

} b;

intmain

()

printf(

"佇列1中優先順序輸出順序為:\n");

while(!q.empty())

printf(

"\n");

printf(

"佇列2中優先順序輸出順序為:\n");

while(!q1.empty())

return

0;

}

執行結果

C 標準模板類庫(STL)之queue初步

1,stl裡有些什麼?包括三個內容 容器 迭代器 演算法。2,容器有哪些?有stack,vector,queue,deque,list,set,multiset,map,multimap等。中文 棧,向量,佇列,雙端佇列,列表,集合,多重集合,對映,多重對映等。3,queue的兩個好朋友 雙端佇列 ...

C 標準模板庫 queue

priority queue的常見用途 queue為佇列,實現了乙個先進先出的容器。使用queue,需要新增標頭檔案 include,還要加上using namespace std queue typename name 由於佇列是一種先入先出的限制性資料結構,因此只能通過front 來訪問隊首元素...

STL 標準模板庫)

此篇只是乙個目錄,將分成單篇去完成 stl 主要有三個部分組成 容器,迭代器,演算法。順序容器 向量 vector 雙端佇列 dequeue 表 list ps copy 方法 關聯容器 集合 set 多重集合 multiset 對映 map 多重對映 multimap 容器介面卡 棧 stack ...