vector容器动态数组
时间: 2024-12-27 07:18:40 浏览: 6
### C++ `vector` 容器作为动态数组的使用方法
#### 导入头文件
为了使用 `vector` 动态数组容器,程序中需要导入 `<vector>` 头文件[^1]。
```cpp
#include <iostream>
#include <vector>
using namespace std;
```
#### 创建 `vector` 对象
创建一个 `vector<int>` 类型的对象来存储整数类型的元素。可以通过多种方式初始化:
- 默认构造函数创建空向量:
```cpp
vector<int> vec;
```
- 初始化列表指定初始元素:
```cpp
vector<int> vec = {1, 2, 3};
```
- 使用迭代器范围构造函数从现有数组复制数据[^3]:
```cpp
int arr[] = {1, 2, 5, 6, 7};
vector<int> vec(begin(arr), end(arr));
```
#### 添加和访问元素
通过成员函数如 `push_back()` 向末尾添加新元素,并利用下标运算符 `[index]` 或者 `at(index)` 方法获取特定位置上的值。
```cpp
vec.push_back(8); // 添加新的元素到末尾
cout << vec[0]; // 访问第一个元素
cout << vec.at(4); // 访问第五个元素(安全检查)
```
#### 查询大小信息
可以调用 `size()` 获取当前已存元素数量,而 `capacity()` 返回分配的空间大小,即使这些空间尚未被占用[^4]。
```cpp
cout << "Size: " << vec.size(); // 当前使用的元素数目
cout << "Capacity: " << vec.capacity();// 已分配但可能未完全使用的总容量
```
#### 修改容量
当预计未来会增加更多项时可提前预留空间以提高性能效率;同样也可以让实际使用的内存更贴近需求减少浪费。
```cpp
vec.reserve(100); // 提前申请至少能容纳100个元素的空间
if (!vec.empty()) {
vec.shrink_to_fit(); // 尽量释放多余不用的内部缓冲区
}
```
#### 删除操作
移除最后一个元素或清空整个集合都很容易实现。
```cpp
if (!vec.empty())
{
vec.pop_back(); // 移除最后面的一项
}
vec.clear(); // 清理所有项目使长度变为零
```
阅读全文