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