雙端隊列(deque容器類):
#include<deque>與vector 類似,支持隨機訪問和快速插入刪除,它在容器中某一位置上的操作所花費的是線性時間。
與vector不同的是:deque 還支持從開始端插入數據:push_front() 。
此外deque 不支持與vector 的capacity() 、reserve() 類似的操作。
deque,是“double-ended queue”的縮寫。可以隨機存取元素(用索引直接存取)。
數組頭部和尾部添加或移除元素都非常快速,但是在中部安插元素比較費時。
頭文件 #include <deque>
定義變量 deque<int> mydeq;
主要成員函數
mydeq.clear() 移除容器中所有數據。
mydeq.push_front(elem) 在隊列首部加入一個數據
mydeq.pop_front() 刪除隊列尾部數據
mydeq.push_back(elem) 在隊列尾部加入一個數據
mydeq.pop_back() 刪除隊列尾部數據
mydeq.empty() 判斷隊列是否為空,為空返回true
mydeq.size() 返回容器中實際數據的個數。
mydeq.erase(pos) 刪除pos位置的數據,返回下一個數據的位置。
mydeq.insert(pos,cnt,elem) 在pos位置插入cnt個數據elem。
mydeq.begin() 返回的指針指向數組中的第一個數據。
mydeq.end() 實際上是取末尾加一,以便讓循環正確運行--它返回的指針指向最靠近數組界限的數據。
operator[] 返回容器中指定位置的一個引用
deque舉例:
View Code
鏈表(list容器類):
#include<list>,是一種雙線性列表,只能順序訪問(從前向後或者從後向前)。
list 的數據組織形式