一、什么是 deque?
雙端隊列(deque)和deque一樣都是STL的容器,deque是雙端數組,而deque是單端的。跟任意其它類型容器一樣,它能夠存放各種類型的對象。
二、容器特性
1.順序序列
deque是由多個連續內存組成的。可以通過元素在序列中的位置訪問對應的元素。
2.動態數組
支持對序列中的任意元素進行快速直接訪問。在前端和末尾添加/刪除元素操作是比較快的。
3.支持隨機訪問迭代器(下一章介紹)
可以用迭代器隨意訪問容器
三、基本函數實現
1,構造函數
- deque();創建一個空deque
- deque(int nSize);創建一個deque,元素個數為nSize
- deque(int nSize,const t& t);創建一個deque,元素個數為nSize,且值均為t
- deque(const deque&);復制構造函數
- deque(begin,end);復制[begin,end)區間內另一個數組的元素到deque中
2.增加函數
- void push_back(const T& x); 尾部增加一個元素X
- void push_front(const T& x); 頭部增加一個元素X
- iterator insert(iterator it,const T& x);隊列中迭代器指向元素前增加一個元素x
- iterator insert(iterator it,int n,const T& x);隊列中迭代器指向元素前增加n個相同的元素x
- iterator insert(iterator it,const_iterator first,const_iterator last);隊列中迭代器指向元素前插入另一個相同類型隊列的[first,last)間的數據
3.刪除函數
- iterator erase(iterator it);刪除隊列中迭代器指向元素
- iterator erase(iterator first,iterator last);刪除隊列中[first,last)中元素
- void pop_back();刪除隊列中最后一個元素
- void pop_front();刪除隊列中的第一個元素
- void clear();清空隊列中所有元素
4.遍歷函數
- reference at(int pos);返回pos位置元素的引用
- reference operator[](int Pos);返回pos位置元素的引用
- reference front();返回首元素的引用
- reference back();返回尾元素的引用
- iterator begin();返回隊列頭指針,指向第一個元素
- iterator end();返回隊列尾指針,指向隊列最后一個元素的下一個位置
- reverse_iterator rbegin();反向迭代器,指向最后一個元素
- reverse_iterator rend();反向迭代器,指向第一個元素之前的位置
5.判斷函數
- bool empty() const;判斷隊列是否為空,若為空,則隊列中無元素
6.大小函數
- int size() const;返回隊列中元素的個數
- int max_size() const;返回最大可允許的deque元素數量值
7.其他函數
- void swap(deque&);交換兩個同類型隊列的數據
- void assign(int n,const T& x);設置隊列中第n個元素的值為x
- void assign(const_iterator first,const_iterator last);隊列中[first,last)中元素設置成當前隊列元素
四、基本用法
//和vector用法基本相同
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
容器
+關注
關注
0文章
495瀏覽量
22060 -
隊列
+關注
關注
1文章
46瀏覽量
10893 -
雙端
+關注
關注
0文章
6瀏覽量
6457
發布評論請先 登錄
相關推薦
c++值deque容器
deque 是 double-ended queue 的縮寫,又稱雙端隊列容器。deque容器支持從頭部和尾部雙端插入、刪除數據。與vector容器不同的是,vector容器是一段連續的空間,而
HarmonyOS方舟開發框架容器類API的介紹與使用
通過數組實現,包括ArrayList、Vector、List、LinkedList、Deque、Queue、Stack七種。線性容器類API,充分考慮了數據訪問的速度,實現了運行時(Runtime)通過
發表于 03-07 11:40
OpenHarmony 3.1 Beta版本關鍵特性解析——ArkUI容器類API介紹
及使用場景。下面,我們將為大家一一道來。1.1線性容器類線性容器類底層主要通過數組實現,包括 ArrayList、Vector、List、LinkedList、Deque、Queue、Stack 七種
發表于 04-24 14:58
HarmonyOS線性容器特性及使用場景
線性容器實現能按順序訪問的數據結構,其底層主要通過數組實現,包括ArrayList、Vector、List、LinkedList、Deque、Queue、Stack七種。
線性容器,充分考慮了數據
發表于 09-27 15:10
夜空中最亮的星——deque容器
一、deque工作原理:deque容器內部有個中控器,維護每段緩沖區中的內容,緩沖區中存放真實數據;中控器維護的每個緩沖區的地址,使得使用deque時像一片連續的內存空間,如下圖所示:二、de
OpenHarmony 3.1 Beta版本關鍵特性解析——ArkUI開發框架容器類API的介紹與使用
線性容器類底層主要通過數組實現,包括 ArrayList、Vector、List、LinkedList、Deque、Queue、Stack 七種。線性容器類 API,充分考慮了數據訪問的速度,實現了運行時(Runtime)通過一條指令就可以完成增刪改查等操作。
C++學習筆記之順序容器
C++中的順序容器是一種用于存儲和管理元素序列的數據結構。它們提供了一組有序的元素,并支持在序列的任意位置插入和刪除元素。C++標準庫中提供了多種順序容器,包括vector、deque、list、forward_list和array。
OpenHarmony語言基礎類庫【@ohos.util.Deque (線性容器Deque)】
Deque(double ended queue)根據循環隊列的數據結構實現,符合先進先出以及先進后出的特點,支持兩端的元素插入和移除。Deque會根據實際需要動態調整容量,每次進行兩倍擴容。
鴻蒙語言基礎類庫:ohos.util.Deque 線性容器Deque
Deque(double ended queue)根據循環隊列的數據結構實現,符合先進先出以及先進后出的特點,支持兩端的元素插入和移除。Deque會根據實際需要動態調整容量,每次進行兩倍擴容。
評論