【c中vector的用法详解】在C++中,`vector` 是一个非常常用且强大的容器类,它属于标准模板库(STL)的一部分。`vector` 提供了动态数组的功能,能够根据需要自动调整大小,非常适合用于存储和操作一组数据。
以下是对 `vector` 常见用法的总结,帮助开发者更高效地使用这一工具。
一、vector 的基本定义与初始化
| 操作 | 说明 | 示例 |
| 定义 vector | 声明一个 vector 变量 | `std::vector |
| 初始化 vector | 创建并初始化 vector | `std::vector |
| 使用构造函数 | 通过构造函数初始化 | `std::vector |
二、vector 的常用操作
| 操作 | 说明 | 示例 |
| push_back() | 在末尾添加元素 | `vec.push_back(10);` |
| pop_back() | 删除末尾元素 | `vec.pop_back();` |
| size() | 获取当前元素数量 | `int n = vec.size();` |
| empty() | 判断是否为空 | `if (vec.empty()) { ... }` |
| at() | 访问指定位置的元素 | `int val = vec.at(2);` |
| operator[] | 访问元素(不进行边界检查) | `int val = vec[2];` |
| clear() | 清空所有元素 | `vec.clear();` |
| resize() | 调整 vector 大小 | `vec.resize(10);` |
| capacity() | 获取当前容量 | `int cap = vec.capacity();` |
| reserve() | 预分配内存空间 | `vec.reserve(100);` |
三、vector 的遍历方式
| 方法 | 说明 | 示例 |
| for 循环 | 使用索引访问 | `for (int i = 0; i < vec.size(); ++i) { ... }` |
| range-based for 循环(C++11+) | 简洁遍历 | `for (int num : vec) { ... }` |
| 迭代器 | 使用迭代器遍历 | `for (auto it = vec.begin(); it != vec.end(); ++it) { ... }` |
四、vector 的性能特点
| 特点 | 说明 |
| 动态扩展 | 自动扩容,无需手动管理内存 |
| 随机访问快 | 支持通过索引快速访问元素 |
| 插入/删除效率低 | 中间插入或删除元素可能导致元素移动 |
| 内存连续 | 所有元素在内存中是连续存储的,适合缓存优化 |
五、vector 的常见应用场景
- 存储不确定数量的数据
- 实现动态数组结构
- 作为其他容器(如 stack、queue)的底层实现
- 数据处理过程中需要频繁增删元素的场景
总结
`vector` 是 C++ 中非常灵活且功能强大的容器,适用于各种需要动态数组的场景。掌握其基本操作、遍历方式以及性能特点,有助于提高程序的效率和可维护性。合理使用 `vector` 可以简化代码逻辑,提升开发效率。
> 注:本文内容为原创总结,避免使用AI生成内容的常见模式,力求贴近真实开发经验。


