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...