C deque 佇列) 的使用

2021-09-19 15:14:46 字數 2269 閱讀 6304

序列|動態陣列|allocator-aware

序列容器的元素按嚴格線性排列,可按順序訪問它們的位置;

動態陣列允許直接訪問其任何元素,可快速在序列首尾相對快速進行元素新增 / 刪除;

容器通過 allocator 物件動態處理儲存需求

(public member function )

begin

將迭代器返回到開頭(增長方向:begin -> end)

end

將迭代器返回到結尾

rbegin

返回反向迭代器以反向開始(增長方向:rbegin -> rend)

rend

將反向迭代器返回到反向結束

cbegin(c++11)

將const_iterator返回到開頭(與begin類似,區別在於begin指向的值可以改變,cbegin指向的值不可改變)

cend(c++11)

將const_iterator返回到開頭末尾

crbegin(c++11)

返回const_reverse_iterator以反向開始

crend(c++11)

將const_reverse_iterator返回到反向結束

(public member function )

size

返回目前元素的數量

max_size

返回可以拓展的最大容量

resize

改變目前容器的大小

empty

判斷容器是否為空

shrink_to_fit(c++11)

縮小容量到較適合的程度,影響capacity,不影響size

(public member function )

operator

直接訪問指定位置的元素

at

直接訪問指定位置的元素,指定位置超出有效範圍會報出異常

front

訪問首元素

back

訪問尾元素

(public member function )

assign

分配容器的內容

push_back

在尾部新增乙個元素

push_front

在首部新增乙個元素

pop_back

在尾部刪除乙個元素

pop_front

在首部刪除乙個元素

insert

迭代器位置插入元素,或者插入連續的序列

erase

擦除迭代器位置的元素,或者擦除連續的序列

swap

交換兩個容器的內容

clear

清空容器的內容

emplace(c++11)

在迭代器位置插入元素(emplace使用直接建構函式,insert使用複製建構函式)

emplace_front(c++11)

在首部新增乙個元素

emplace_back(c++11)

在尾部新增乙個元素

C Deque 雙向佇列

c deque 雙向佇列 是一種優化了的 對序列兩端元素進行新增和刪除操作的基本序列容器。它允許較為快速地隨機訪問,但它不像 vector 把所有的物件儲存在一塊連續的記憶體塊,而是採用多個連續的儲存塊,並且在乙個對映結構中儲存對這些塊及其順序的跟蹤。向 deque 兩端新增或刪除元素的開銷很小。它...

c deque 雙端佇列

雙端佇列 函式 描述c.assign beg,end c.assign n,elem 將 beg end 區間中的資料賦值給c。將n個elem的拷貝賦值給c。c.at idx 傳回索引idx所指的資料,如果idx越界,丟擲out of range。c.back 傳回最後乙個資料,不檢查這個資料是否存...

C deque容器的理解

deque容器 發音類似 deck 一種動態陣列,允許通過隨機訪問迭代器直接訪問單個元素,可以根據需要動態的伸縮。deque與vector相似,但deque在頭部和尾部進行資料插入和刪除操作更加高效。vector與deque相似,但內部的實現原理不同 vector使用了動態陣列,該陣列通常需要動態增...