Deque容器的使用方法

2021-08-20 06:51:36 字數 1842 閱讀 8596

容器deque和vector非常相似,操作函式基本一致。它採用動態陣列來管理元素,提供隨機訪問,可以在頭尾兩端進行快速安插和刪除元素操作。特別要注意,除了頭尾兩端,在任何地方安插與刪除元素,都將導致指向deque元素的任何pointers references iterators 失效。

包括的標頭檔案為:

#include

using namespace std;

宣告乙個deque時,一般需要字首std::  ,如std::dequec;

因為型別deque是乙個定義在namespace std內的template 。

建構函式:

dequec   ;  //產生乙個空的deque,其中沒有任何元素

dequec1(c2); //產生另乙個同型deque的副本(所有元素都被拷貝)

dequec(n) ;  //產生乙個大小為n的deque

dequec(n , elem) ;  //產生乙個大小為n的deque,

//每個元素值都是elem。

dequerc(begin,end); //產生乙個deque,以區間[begin ; end]

//做為元素初值

析構函式:

c.~ deque()   ;銷毀所有元素,並釋放記憶體。

非變動性操作

c.size();         //返回當前的元素數量

c.empty();       //判斷大小是否為零。等同於c.size() == 0,但可能更快

c.max_size();    //可容納元素的最大數量

c.at(idx) ;       //返回索引為idx所標示的元素。如果idx越界,丟擲out_of_range

c[idx] ;         //返回索引idx所標示的元素。不進行範圍檢查

c.front() ;       //返回第乙個元素,不檢查元素是否存在

c.back();        //返回最後乙個元素

c.begin();       //返回乙個隨機迭代器,指向第乙個元素

c.end();         //返回乙個隨機迭代器,指向最後元素的下一位置

變動性操作:

c1 = c2  ;        //將c2的所有元素賦值給c1;

c.assign(n , elem);    //將n個elem副本賦值給c

c.assing(beg , end);   //將區間[beg;end]中的元素賦值給c;

c.push_back(elem);   //在尾部新增元素elem

c.pop_back()    ;    //移除最後乙個元素(但不回傳)

c.push_front()   ;   //在頭部新增元素elem

c.pop_front()    ;   //移除頭部乙個元素(但不回傳)

c.erase(pos)    ;   //移除pos位置上的元素,返回一元素位置

//如 c.erase( c.begin() + 5)  //移除第五個元素

c.insert(pos , elem); //在pos位置插入乙個元素elem,並返回新元素的位置

c.insert(pos , n , elem); //在pos位置插入n個元素elem,無返回值

c.insert(pos , beg , end);

c.resize(num);       //將容器大小改為num。可更大或更小。

c.resize(num , elem);  //將容器大小改為num,新增元素都為 elem

c.clear();            //移除所有元素,將容器清空

ps:deque和vector是智慧型容器,刪除或者增加元素時,其他位置與元素會進行相應的移動。

STL 容器deque的使用方法

double ended queue 雙端的 vector是單端的 deque在介面上和vector非常相似,在許多操作的地方可以直接替換 deque可以隨機訪問元素 支援索引值直接訪問,或at deque頭尾部新增移除元素非常快速,但是在中部新增移除元素比較費時 include deque物件的預...

vector容器的使用方法

這個網上隨便都有啦,google一下,應有盡有。說明 vector 是一種動態陣列 是基本 陣列的類模板。其內部定義了很多基本操作。include 注意 標頭檔案沒有 h 構造 這個建構函式還有乙個可選的引數,這是乙個型別為 t的例項,描述了各個向量種各成員的初始值 如 vectorv2 init ...

C 容器篇 set的使用方法

include includeusing namespace std set容器的構造和賦值 void printset set s cout endl void test01 int main include includeusing namespace std set容器 大小和交換 void ...