STL學習(三)deque容器學習

2021-06-22 19:18:44 字數 1138 閱讀 1288

deque的操作函式

建構函式和析構函式:

非變動性操作:

變動性操作:

deque記憶體 

deque從邏輯上來看是連續的記憶體,本質上是由一段段固定大小 的連續空間組成。deque採用類似索引的結構管理記憶體,如下: 

採用一小塊連續的記憶體索引快取結點,每乙個快取結點也是一段連續的空間,可以儲存多個資料。當索引記憶體空間滿載,需要申請一塊更大的記憶體做索引。

注意:deque不提供容量操作:capacity()和reverse()。

deque直接提供函式完成首尾元素的插入和刪除。

除了at()函式,其他成員函式都不會檢查索引或迭代器是否有效。

元素的插入和刪除可能會導致記憶體重新分配。所以任何插入或刪除操作都會使所有指向deque元素的pointers、reference、iterators失效。唯一     例外的是在首尾插入元素之後,pointers和reference可能仍然有效(iterators仍然會失效)。

#include #include using namespace std;

void printdeque(dequeque)

cout

int i =1;

for(i=1;i<10;i++)

deque1.push_back(i);

printdeque(deque1);// output : 1 2 3 4 5 6 7 8 9

/*err deque has no member named 'find'*/

deque::iterator it = finddeque(deque1,5);

if(it != deque1.end())

cout<

if(it2 != deque1.end())

cout<

STL學習筆記之 (三)容器 deque

deque,即double end queue,雙向佇列。不同的平台會提供不同版本的deque實現策略,但歸結起來,deque應該是一種指標陣列實現。使用deque可以實現元素的隨機訪問和遍歷,同時在起始端和末端插入和刪除元素的效率很高 但是,在中間部分插入和刪除元素會導致很低的工作效率。deque...

STL學習筆記 序列式容器deque

上一次說了list,現在再看一下序列式容器的另外幾種,常用的stack,queue,還有乙個deque,這個我不常用,所以先看一下deque的用法 1.deque vector是單向開口的連續線性空間,list是不連續的空間,支援兩邊操作,deque是一種雙向開口的連續線性空間,支援兩邊操作。由於d...

STL學習系列之四 deque序列容器

stl學習之四 deque序列容器deque是 雙端佇列 的簡寫,像vector一樣,deque類的實現提供了讀取和修改它的元素的高效索引訪問 使用下標 像list一樣,deque類的實現提供了在前端和後端進行高效插入和刪除的操作。deque類對隨機訪問迭代器提供了支援,因此deque能夠用於所有的...