【vectorc++用法】在C++中,`vector` 是一个非常常用且强大的容器类,属于标准模板库(STL)的一部分。它提供了动态数组的功能,可以自动调整大小,非常适合需要频繁添加或删除元素的场景。下面是对 `vector` 在 C++ 中主要用法的总结。
一、vector 基本概念
| 特性 | 描述 |
| 类型 | 动态数组容器 |
| 定义 | `std::vector |
| 头文件 | ` |
| 功能 | 支持随机访问、动态扩容、插入、删除等操作 |
二、vector 常用操作
| 操作 | 语法示例 | 说明 |
| 初始化 | `std::vector | 创建一个空的 vector |
| 添加元素 | `vec.push_back(10);` | 尾部添加元素 |
| 插入元素 | `vec.insert(vec.begin() + 2, 5);` | 在指定位置插入元素 |
| 删除元素 | `vec.erase(vec.begin() + 1);` | 删除指定位置的元素 |
| 访问元素 | `vec[0];` 或 `vec.at(0);` | 通过下标或 at 方法访问元素 |
| 获取大小 | `vec.size();` | 返回当前元素个数 |
| 判断是否为空 | `vec.empty();` | 返回 true 表示为空 |
| 清空所有元素 | `vec.clear();` | 删除所有元素 |
| 遍历元素 | 使用迭代器或范围 for 循环 | 如 `for (int num : vec)` |
三、vector 的性能特点
| 特点 | 说明 |
| 时间复杂度 | 插入/删除在中间为 O(n),尾部为 O(1) |
| 空间效率 | 自动扩容,但可能造成内存浪费 |
| 随机访问 | O(1) 时间复杂度,支持快速访问 |
四、vector 与数组的区别
| 对比项 | vector | 数组 |
| 大小 | 动态可变 | 固定大小 |
| 内存管理 | 自动管理 | 需手动分配和释放 |
| 操作灵活性 | 更加灵活 | 较为固定 |
| 安全性 | 提供边界检查(at() 方法) | 不提供边界检查 |
五、使用建议
- 适合场景:需要频繁增删元素、不确定数据量大小时。
- 不推荐场景:对内存占用特别敏感、需要极高性能的底层操作。
- 注意:避免在循环中频繁使用 `push_back()`,可预先分配空间(如 `vec.reserve(n)`)提高效率。
总结
`vector` 是 C++ 中非常实用的容器,具有良好的灵活性和易用性。掌握其基本用法和性能特点,能够帮助开发者更高效地处理数据集合。合理使用 `vector` 可以提升代码的可读性和运行效率。


