std::deque base
时间: 2025-05-07 09:00:01 浏览: 7
### C++ 中 `std::deque` 的基础知识
#### 创建与初始化 `std::deque`
在 C++ 中,可以通过多种方式来创建和初始化 `std::deque` 对象:
- **创建空的 `std::deque`**:
```cpp
std::deque<int> d1;
```
- **使用指定大小构造 `std::deque`**,默认值为 0:
```cpp
std::deque<int> d2(5);
```
- **使用指定大小和初始值构造 `std::deque`**:
```cpp
std::deque<int> d3(5, 42);
```
- **使用初始化列表构造 `std::deque`**:
```cpp
std::deque<int> d4{1, 2, 3, 4, 5};
```
- **通过迭代器范围构造 `std::deque`**:
```cpp
std::deque<int> d5(d4.begin(), d4.end());
```
这些方法提供了灵活的方式来初始化不同的 `std::deque` 实例[^1]。
#### 插入与删除元素
`std::deque` 支持高效的两端插入和删除操作。常见的插入和删除操作如下所示:
- **前端插入**:
```cpp
d.push_front(value);
```
- **后端插入**:
```cpp
d.push_back(value);
```
- **前端移除**:
```cpp
d.pop_front();
```
- **后端移除**:
```cpp
d.pop_back();
```
此外,还可以使用 `insert()` 和 `erase()` 方法来进行更复杂的插入和删除操作。
#### 随机访问和支持的操作
作为双端队列容器,`std::deque` 不仅支持两端高效插入和删除,还提供随机访问的能力。这意味着可以像数组一样通过索引访问元素:
```cpp
d[i]; // 访问第 i 个元素
```
其他常用的方法还包括获取首尾元素、判断是否为空等:
- 获取第一个元素:
```cpp
d.front();
```
- 获取最后一个元素:
```cpp
d.back();
```
- 判断 `std::deque` 是否为空:
```cpp
d.empty();
```
- 获取当前容量:
```cpp
d.size();
```
以上特性使得 `std::deque` 成为了处理频繁两端增删场景的理想选择[^4]。
阅读全文
相关推荐


















