【vectorc++用法】在C++编程中,`vector` 是一个非常常用且强大的容器类,它提供了动态数组的功能,能够根据需要自动扩展或缩小大小。`vector` 属于标准模板库(STL)的一部分,使用起来灵活高效,广泛应用于各种程序开发中。
以下是对 `vector` 在 C++ 中常见用法的总结,结合实际示例和功能说明,帮助开发者更好地掌握其使用方法。
一、vector 的基本操作
操作 | 描述 | 示例代码 |
定义 | 声明一个 vector 对象 | `std::vector |
添加元素 | 向末尾添加元素 | `vec.push_back(10);` |
访问元素 | 通过下标访问元素 | `int value = vec[0];` |
获取大小 | 获取当前元素个数 | `int size = vec.size();` |
判断空 | 判断 vector 是否为空 | `if (vec.empty()) { ... }` |
删除元素 | 删除最后一个元素 | `vec.pop_back();` |
清空 | 清除所有元素 | `vec.clear();` |
遍历 | 使用迭代器遍历元素 | `for (auto it = vec.begin(); it != vec.end(); ++it) { ... }` |
二、vector 的初始化与赋值
初始化方式 | 描述 | 示例代码 |
默认初始化 | 创建一个空 vector | `std::vector |
带初始大小 | 创建指定大小的 vector | `std::vector |
带初始值 | 创建指定大小并初始化为某个值 | `std::vector |
从数组初始化 | 从数组复制元素 | `int arr[] = {1,2,3}; std::vector |
赋值操作 | 将另一个 vector 的内容赋给当前 vector | `vec = {1,2,3};` |
三、vector 的常用函数
函数名 | 功能 | 示例 |
at() | 通过索引访问元素,越界时抛出异常 | `vec.at(0);` |
front() | 返回第一个元素 | `vec.front();` |
back() | 返回最后一个元素 | `vec.back();` |
insert() | 在指定位置插入元素 | `vec.insert(vec.begin(), 5);` |
erase() | 删除指定位置或范围的元素 | `vec.erase(vec.begin());` |
resize() | 改变 vector 的大小 | `vec.resize(10);` |
capacity() | 返回当前分配的内存容量 | `vec.capacity();` |
reserve() | 预分配内存空间 | `vec.reserve(100);` |
四、vector 的性能特点
- 动态扩容:当元素数量超过当前容量时,`vector` 会自动分配更大的内存空间,并将原有数据复制过去。
- 随机访问快:由于 `vector` 内部是连续存储的,因此可以通过下标快速访问元素。
- 插入/删除效率较低:在中间位置进行插入或删除操作时,可能需要移动大量元素,影响性能。
五、注意事项
- `vector` 不适合频繁在中间插入或删除元素,建议使用 `list` 或 `deque`。
- 使用 `push_back()` 和 `pop_back()` 时,注意避免越界访问。
- 在多线程环境下使用 `vector` 时,需自行处理同步问题。
通过以上总结可以看出,`vector` 是 C++ 中非常实用的容器之一,掌握其基本用法和性能特点,能显著提升程序的效率和可维护性。在实际开发中,合理选择容器类型和操作方式,有助于编写更健壮、高效的代码。