C 中STL容器之雙端佇列 dequeue

2021-09-11 06:44:21 字數 1544 閱讀 5641

1.雙端佇列介紹

雙端佇列(dequeue)與vector很類似,採用線性表順序儲存結構,且支援隨機訪問,即可以直接用下標來訪問元素。但與vector有區別:

一般來說,當考慮到容器元素的記憶體分配策略和操作的效能時deque相當於vector更有優勢。它是vector和list的結合,複雜度處於二者之間。

複雜度

操作複雜度

push_front()

o(1)

pop_front()

o(1)

push_back()

o(1)

pop_back()

o(1)

insert()

o(n)

erase()

o(n)

訪問o(1)

2.雙端佇列基本用法

2.1 dequeue的建立

與vector類似,dequed;

2.2 dequeue常見用法

操作含義

a.push_back(e)

在尾部插入元素e,會不斷擴張佇列

a.push_front(e)

在頭部插入元素e

a.pop_front()

在頭部刪除資料

a.pop_back()

在尾部刪除資料

a.resize(num)

重新指定佇列的長度

a.size()

返回容器中實際資料個數

a.max_size() //返回容器中最大資料的數量

簡單測試**:

#include

#include

using namespace std;

//用下標遍歷佇列

void

showdeque1

(deque<

int>

& d)

//用迭代器迭代佇列

void

showdeque2

(deque<

int>

& d)

intmain()

程式輸出:

初始佇列:1 2 3 4 5

在頭部插入6,7後的佇列:7 6 1 2 3 4 5

刪除乙個頭部元素後:6 1 2 3 4 5

刪除乙個尾部元素後:6 1 2 3 4

在開頭的第二個位置插入元素100:6 100 1 2 3 4

刪除倒數第二個元素:6 100 1 2 4

size = 5

擴容到size = 6 :6 100 1 2 4 0

減少容量到size = 2:6 100

清除容器後empty?1

STL容器 順序容器 佇列queue和deque

queue單向佇列,先進先出,也就是從尾部插入,頭部取出 操作 queueq 建立乙個int型空佇列q q.empty 判斷佇列是否為空,為空返回true q.push s 將變數s從隊尾入隊 q.pop 將隊頭元素彈出,佇列中不再有該元素 q.front 只返回隊頭元素,只是檢視,佇列中元素依然存...

STL順利容器之雙端佇列 deque

雙端佇列是由動態陣列實現。標頭檔案 include 構造方法 dequedeq 建立乙個沒有任何元素的雙端佇列 dequedeq otherdeq 用另乙個型別相同雙端佇列初始化該雙端佇列 dequedeq size 初始化乙個固定size的雙端佇列 dequedeq n,element 初始化n個...

STL之雙端佇列

deque雙向佇列是一種雙向開口的連續 線性空間 可以高效的在頭尾兩端插入和刪除元素,deque在介面上和 vector 非常相似,下面列出deque的常用成員函式 deque.c c.assgin beg,end c.assgin n,elem c.at idx c.front c.back c....