目錄
1、 核心概念
2. 基本語法
3. 特點
4. 特有成員函數
5. 內存與性能
6. 示例代碼
7. 成員函數列表
8. 使用場景
9. 注意事項
1、 核心概念
雙端隊列(Double-Ended Queue,deque) 是一種允許在隊列頭部和尾部高效插入和刪除元素的線性數據結構,同時支持隨機訪問。
-
與
vector
的區別:vector
僅在尾部高效插入/刪除,deque
在兩端均高效(O(1)復雜度)。 -
與
list
的區別:list
是雙向鏈表,中間插入/刪除高效(O(1)),但隨機訪問效率低(O(n));deque
隨機訪問效率更高(O(1)),但中間插入/刪除效率較低(O(n))。 -
內存結構:由多個固定大小的連續內存塊(chunks)組成,通過指針數組(或類似結構)管理,允許動態擴展。
2. 基本語法
在 C++ 中,使用 <deque>
需要包含頭文件 #include <deque>
。
#include <deque>// 聲明與初始化
std::deque<int> dq1; // 空 deque
std::deque<int> dq2(5, 10); // 5 個元素,每個值為 10
std::deque<int> dq3 = {1, 2, 3, 4}; // 列表初始化
std::deque<int> dq4(dq3.begin(), dq3.end()); // 迭代器范圍初始化
3. 特點
-
雙端操作高效:
push_front()
、pop_front()