C 之Deque容器初學(二)

2021-07-26 21:53:43 字數 3405 閱讀 9587

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