C 之Deque容器初學(一)

2021-07-26 19:42:57 字數 2187 閱讀 2441

deque簡介

² deque是「double-ended queue」的縮寫,和vector一樣都是

stl的容器,

deque是雙端陣列

,而vector是單端的。

² deque在介面上和

vector

非常相似,在許多操作的地方可以直接替換。

² deque可以隨機訪問元素(支援索引值直接訪問, 用

操作符或

at()

方法,這個等下會詳講)。

² deque頭部和尾部新增或移除元素都非常快速。但是在中部安插元素或移除元素比較費時。

² #include

deque物件的預設構造

deque採用模板類實現,deque物件的預設構造形式:dequedeqt;  

deque deqint;            //乙個存放

int的

deque容器。

deque deq float;     //乙個存放

float

的deque容器。

deque deq string;     //乙個存放

string

的deque容器。

//尖括號內還可以設定指標型別或自定義型別。 

deque末尾的新增移除操作

理論知識:

² deque.push_back(elem); //在容器尾部新增乙個資料

² deque.push_front(elem); //在容器頭部插入乙個資料

² deque.pop_back();     //刪除容器最後乙個資料

² deque.pop_front(); //刪除容器第乙個資料

dequedeqint;

deqint.push_back(1);

deqint.push_back(3);

deqint.push_back(5);

deqint.push_back(7);

deqint.push_back(9);

deqint.pop_front();

deqint.pop_front();

deqint.push_front(11);

deqint.push_front(13);

deqint.pop_back();

deqint.pop_back();

//deqint  

deque的資料訪問

理論知識:

² deque.at(idx);  //返回索引idx所指的資料,如果idx越界,丟擲out_of_range。

² deque[idx];  //返回索引idx所指的資料,如果idx越界,不丟擲異常,直接出錯。

² deque.front();   //返回第乙個資料。

² deque.back();  //返回最後乙個資料

dequedeqint;

deqint.push_back(1);

deqint.push_back(3);

deqint.push_back(5);

deqint.push_back(7);

deqint.push_back(9);

int ia = deqint.at(0); //1

int ib = deqint[1]; //3

deqint.at(0) = 99; //99

deqint[1] = 88; //88

int ifront = deqint.front(); //99

int iback = deqint.back(); //9

deqint.front() = 77; //77

deqint.back() = 66; //66

測試**如下所示:

#include using namespace std;

#include "deque"

void prinv(deque&v)

} catch (...) }

void main1()

int main()

執行結果如圖所示:

C 之Deque容器初學(二)

deque物件的帶引數構造 理論知識 deque beg,end 建構函式將 beg,end 區間中的元素拷貝給本身。注意該區間是左閉右開的區間。deque n,elem 建構函式將n個elem拷貝給本身。deque const deque deq 拷貝建構函式。dequedeqinta deqin...

c STL容器之deque容器

deque是雙端陣列。deque和vector的區別 deque內部工作原理 deque內部有個中控器,維護每段緩衝區中的內容,緩衝區中存放著真實資料。中控器維護的是每個緩衝區的位址,使得使用每個deque時像一塊連續的記憶體空間。deque容器的迭代器是支援隨機訪問的。一 deque建構函式 de...

STL通用容器之 deque 容器

1.5deque容器 deque容器為乙個給定型別的元素進行線性處理,就如向量,它能夠快速地隨機進入任乙個元素,並且能夠高效地 入和刪除容器的尾部元素。但它與vector不同,deque能支援高效插入和刪除容器的頭部元素,也叫做雙端佇列.1 建構函式 deque 建立乙個空deque deque i...