STL 容器deque的使用方法

2021-08-20 02:53:32 字數 2290 閱讀 6217

double-ended queue  雙端的

vector是單端的

deque在介面上和vector非常相似,在許多操作的地方可以直接替換

deque可以隨機訪問元素(支援索引值直接訪問,或at())

deque頭尾部新增移除元素非常快速,但是在中部新增移除元素比較費時

#include

deque物件的預設構造

deque採用模板類實現,deque物件的預設構造形式:dequedeqt;如:

dequedeqint;//乙個存放int型別的deque容器

dequedeqfloat;//乙個存放float型別的deque容器

dequedeqstring;//乙個存放string型別的deque容器

//尖括號內還可以設定指標型別或自定義型別

deque頭部和末尾的新增移除操作

deque.push_back(elem);//在容器尾部新增乙個資料

deque.push_front(elem);//在容器頭部插入乙個資料

deque.pop_back();//刪除容器最後乙個資料

deque.pop_front();//刪除容器第乙個元素

deque的資料訪問

deque.at(idx);//返回索引idx所指的資料,如果idx越界,丟擲out_of_range異常

deque[idx];//返回索引idx所指的資料,如果idx越界,直接crash

deque.front();//返回第乙個資料

deque.back();//返回最後乙個資料

deque與迭代器

deque.begin();//返回容器中第乙個元素的迭代器

deque.end();//返回容器中最後乙個元素之後的迭代器

deque.rbegin();//返回容器中倒數第乙個元素的迭代器

deque.rend();//返回容器中倒數最後乙個元素之後的迭代器

deque物件的帶引數構造

deque(beg, end);//建構函式將[beg,end)區間中的元素拷貝給本身

deque(n, elem);//建構函式將n個elem拷貝給本身

deque(const deque &deq);//拷貝建構函式

deque的賦值

deque.assign(beg, end);//將[beg,end)區間中的資料拷貝賦值給本身

deque.assign(n, elem);//將n個elem拷貝賦值給本身

deque& operator=(const deque &deq);//過載等號操作符

deque.swap(deq);//將deq與本身的元素互換

deque的大小

deque.size();//返回容器中元素個數

deque.empty();//判斷容器是否為空

deque.resize(num);//重新指定容器的長度為num,若容器變長,則以預設值填充新位置。如果容器變短,則末尾超出容器長度的元素被刪除。

deque.resize(num, elem);//重新指定容器的長度為num,若容器變長,則以elem填充新位置。如果容器變短,則末尾超出容器長度的元素被刪除。

deque的插入

deque.insert(pos, elem);//在pos位置插入乙個elem元素的拷貝,返回新資料位置

deque.insert(pos, n, elem);//在pos位置插入n個elem資料,無返回值

deque.insert(pos, beg, end);//在pos位置插入[beg,end)區間的資料,無返回值

deque的刪除

deque.clear();//移除容器中的所有資料

deque.erase(beg, end);//刪除[beg,end)區間的資料,無返回值

deque.erase(pos);//刪除pos位置的資料,返回下乙個資料的位置

Deque容器的使用方法

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

STL容器 deque實現

vector是單向開口的連續線性空間,deque則是一種雙向開口的連續線性空間,可以在頭尾兩端分別做元素的插入和刪除操作。vector雖然從技術上也可以實現對頭尾兩端進行操作,但由於vector的底層實現特點的原因,其頭部操作效率奇差,故stl沒有為vector實現這一功能。deque和vector...

STL通用容器之 deque 容器

1.5deque容器 deque容器為乙個給定型別的元素進行線性處理,就如向量,它能夠快速地隨機進入任乙個元素,並且能夠高效地 入和刪除容器的尾部元素。但它與vector不同,deque能支援高效插入和刪除容器的頭部元素,也叫做雙端佇列.1 建構函式 deque 建立乙個空deque deque i...