deque物件的帶引數構造
理論知識
² deque(beg,end); //建構函式將[beg, end)區間中的元素拷貝給本身。注意該區間是左閉右開的區間。
² deque(n,elem); //建構函式將n個elem拷貝給本身。
² deque(const deque &deq); //拷貝建構函式。
dequedeqinta;
deqinta.push_back(1);
deqinta.push_back(3);
deqinta.push_back(5);
deqinta.push_back(7);
deqinta.push_back(9);
dequedeqintb(deqinta.begin(),deqinta.end()); //1 3 5 7 9
dequedeqintc(5,8); //8 8 8 8 8
dequedeqintd(deqinta); //1 3 5 7 9
deque的賦值
理論知識
² deque.assign(beg,end); //將[beg, end)區間中的資料拷貝賦值給本身。注意該區間是左閉右開的區間。
² deque.assign(n,elem); //將n個elem拷貝賦值給本身。
² deque& operator=(const deque &deq); //過載等號操作符
² deque.swap(deq); // 將vec與本身的元素互換
dequedeqinta,deqintb,deqintc,deqintd;
deqinta.push_back(1);
deqinta.push_back(3);
deqinta.push_back(5);
deqinta.push_back(7);
deqinta.push_back(9);
deqintb.assign(deqinta.begin(),deqinta.end()); // 1 3 5 7 9
deqintc.assign(5,8); //8 8 8 8 8
deqintd = deqinta; //1 3 5 7 9
deqintc.swap(deqintd); //互換
deque的大小
理論知識
² deque.size(); //返回容器中元素的個數
² deque.empty(); //判斷容器是否為空
² deque.resize(num); //重新指定容器的長度為num,若容器變長,則以預設值填充新位置。如果容器變短,則末尾超出容器長度的元素被刪除。
² deque.resize(num, elem); //重新指定容器的長度為num,若容器變長,則以elem值填充新位置。如果容器變短,則末尾超出容器長度的元素被刪除。
dequedeqinta;
deqinta.push_back(1);
deqinta.push_back(3);
deqinta.push_back(5);
int isize = deqinta.size(); //3
if (!deqinta.empty())
deqinta.resize(5); //1 3 5 0 0
deqinta.resize(7,1); //1 3 5 0 0 1 1
deqinta.resize(2); //1 3
deque的插入
理論知識
² deque.insert(pos,elem); //在
pos位置插入乙個
elem
元素的拷貝,返回新資料的位置。
² deque.insert(pos,n,elem); //在
pos位置插入n個
elem
資料,無返回值。
² deque.insert(pos,beg,end); //在
pos位置插入
[beg,end)
區間的資料,無返回值。
dequedeqa;
dequedeqb;
deqa.push_back(1);
deqa.push_back(3);
deqa.push_back(5);
deqa.push_back(7);
deqa.push_back(9);
deqb.push_back(2);
deqb.push_back(4);
deqb.push_back(6);
deqb.push_back(8);
deqa.insert(deqa.begin(), 11); //
deqa.insert(deqa.begin()+1,2,33); //
deqa.insert(deqa.begin() , deqb.begin() , deqb.end() ); //
deque的刪除
理論知識
² deque.clear(); //移除容器的所有資料
² deque.erase(beg,end); //刪除[beg,end)區間的資料,返回下乙個資料的位置。
² deque.erase(pos); //刪除
pos位置的資料,返回下乙個資料的位置。
刪除區間內的元素
deqint是用
deque
宣告的容器,現已包含按順序的
1,3,5,6,9
元素。
deque::iterator itbegin=deqint.begin()+1;
deque::iterator itend=deqint.begin()+3;
deqint.erase(itbegin,itend);
//此時容器
deqint
包含按順序的
1,6,9
三個元素。
假設 deqint 包含
1,3,2,3,3,3,4,3,5,3
,刪除容器中等於3的元素
for(deque::iterator it=deqint.being(); it!=deqint.end(); ) //小括號裡不需寫
++it
if(*it == 3)
it = deqint.erase(it); //以迭代器為引數,刪除元素
3,並把資料刪除後的下乙個元素位置返回給迭代器。
//此時,不執行
++it
;
else
++it;
//刪除
deqint
的所有元素
deqint.clear(); //容器為空
C 之Deque容器初學(一)
deque簡介 deque是 double ended queue 的縮寫,和vector一樣都是 stl的容器,deque是雙端陣列 而vector是單端的。deque在介面上和 vector 非常相似,在許多操作的地方可以直接替換。deque可以隨機訪問元素 支援索引值直接訪問,用 操作符或 a...
c STL容器之deque容器
deque是雙端陣列。deque和vector的區別 deque內部工作原理 deque內部有個中控器,維護每段緩衝區中的內容,緩衝區中存放著真實資料。中控器維護的是每個緩衝區的位址,使得使用每個deque時像一塊連續的記憶體空間。deque容器的迭代器是支援隨機訪問的。一 deque建構函式 de...
STL通用容器之 deque 容器
1.5deque容器 deque容器為乙個給定型別的元素進行線性處理,就如向量,它能夠快速地隨機進入任乙個元素,並且能夠高效地 入和刪除容器的尾部元素。但它與vector不同,deque能支援高效插入和刪除容器的頭部元素,也叫做雙端佇列.1 建構函式 deque 建立乙個空deque deque i...