其實deque的最大特點就是雙端,其可以實現隊首隊尾都插入的功能
vector:只能插入在隊首,但是提供下標訪問方式。⭐️⭐️⭐️
stack:不支援下標訪問,存入只能存進棧頂,取出最後乙個必須乙個乙個pop。⭐️
queue:只能插入進隊首,不支援下標⭐️⭐️
array:類似陣列(幾乎就是),支援下標,可在任何地方插入⭐️⭐️⭐️⭐️⭐️
deque:支援任意地方插入(insert),不支援下標,可在隊首隊尾插入⭐️⭐️⭐️⭐️
從列表中可見deque的訪問效率非常高,注:個人認為
方法含義
deque
建構函式
push_back
在當前的最後乙個元素之後 ,在 deque 容器的末尾新增乙個新元素
push_front
在 deque 容器的開始位置插入乙個新的元素,位於當前的第乙個元素之前
pop_back
刪除 deque 容器中的最後乙個元素,有效地將容器大小減少乙個
pop_front
刪除 deque 容器中的第乙個元素,有效地減小其大小
emplace_front
在 deque 的開頭插入乙個新的元素,就在其當前的第乙個元素之前
emplace_back
在 deque 的末尾插入乙個新的元素,緊跟在當前的最後乙個元素之後
例項:
#include
#include
int main ();
std::deque<
int> fifth (myints, myints +
sizeof
(myints)
/sizeof
(int))
; std::cout <<
"the contents of fifth are:"
;for
(std::deque<
int>
::iterator it = fifth.
begin()
; it!=fifth.
end();
++it)
std::cout <<
' '<<
*it;
std::cout <<
'\n'
;return0;
}
out:
the contents of fifth are: 16 2 77 29
例項2:
#include
#include
int main (
)while
(myint)
; std::cout <<
"mydeque stores "
<<
(int
) mydeque.
size()
<<
" numbers.\n"
;return0;
}
out:
please enter some integers (enter 0 to end):1 2 3 4 5 0
mydeque stores 6 numbers.
C STl之雙端佇列
deque與vector非常相似,不僅可以在尾部插入和刪除元素,還可以在頭部插入和刪除。不過當考慮到容器元素的記憶體分配策略和操作效能時,deque相對vector較為有優勢。標頭檔案 include 1 deque 建立乙個沒有任何元素的deque物件。deque d 2 deque size t...
C STL之雙端佇列容器
deque雙端佇列容器與vector很類似,採用線性表順序儲存結構。但與vector區別,deque採用分塊的線性儲存結構來儲存資料,每塊的大小一般為512b,將之稱為deque塊,所有的deque塊使用乙個map塊進行管理,每個map資料項記錄各個deque塊的首位址,這樣的話,deque塊在頭部...
C STL之deque雙端佇列
deque與vector非常相似,不僅可在尾部插入和刪除,還可在頭部插入和刪除,但是內部的資料機制和執行效能與vector不同,一般來說,當考慮到容器元素的記憶體分配策略和操作的效能時,deque比vector有優勢。技術原理 deque的元素資料採用分塊的線性結構進行儲存,如下圖所示。deque分...