目录
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()