【vectorc++用法】在C++编程中,`vector` 是一个非常重要的容器类,属于标准模板库(STL)的一部分。它提供了一种动态数组的功能,能够根据需要自动扩展或缩小大小,非常适合处理不确定数量的数据。本文将对 `vector` 的常见用法进行总结,并通过表格形式展示其基本操作和示例。
一、`vector` 基本概念
`vector` 是一个序列容器,用于存储相同类型的元素集合。它支持随机访问、插入和删除操作,是 C++ 中最常用的容器之一。
二、`vector` 常用操作与示例
| 操作 | 说明 | 示例代码 |
| `include | 引入 vector 头文件 | `include |
| `vector | 定义一个整型 vector | `vector |
| `vec.push_back(x);` | 在末尾添加元素 x | `vec.push_back(10);` |
| `vec.pop_back();` | 删除最后一个元素 | `vec.pop_back();` |
| `vec.size();` | 获取当前元素个数 | `int n = vec.size();` |
| `vec.empty();` | 判断是否为空 | `if (vec.empty()) { ... }` |
| `vec.clear();` | 清空所有元素 | `vec.clear();` |
| `vec[i];` | 访问第 i 个元素 | `int x = vec[0];` |
| `vec.at(i);` | 安全访问第 i 个元素 | `int x = vec.at(2);` |
| `vec.insert(pos, val);` | 在 pos 位置插入值 val | `vec.insert(vec.begin(), 5);` |
| `vec.erase(pos);` | 删除 pos 位置的元素 | `vec.erase(vec.begin());` |
| `vec.resize(n);` | 调整 vector 大小为 n | `vec.resize(10);` |
| `vec.reserve(n);` | 预分配 n 个元素空间 | `vec.reserve(100);` |
三、`vector` 的初始化方式
| 初始化方式 | 说明 | 示例 |
| 默认构造 | 创建一个空的 vector | `vector |
| 指定大小 | 创建指定大小的 vector,元素初始化为默认值 | `vector |
| 指定大小和值 | 创建指定大小的 vector,元素初始化为给定值 | `vector |
| 使用数组初始化 | 从数组初始化 vector | `int arr[] = {1, 2, 3}; vector |
| 使用另一个 vector 初始化 | 从另一个 vector 初始化 | `vector |
四、`vector` 的遍历方式
| 遍历方式 | 说明 | 示例 |
| 使用下标 | 通过索引逐个访问 | `for (int i = 0; i < vec.size(); ++i) { cout << vec[i]; }` |
| 使用迭代器 | 使用 begin() 和 end() 进行遍历 | `for (auto it = vec.begin(); it != vec.end(); ++it) { cout << it; }` |
| 使用 range-based for 循环(C++11 及以上) | 更简洁的遍历方式 | `for (int num : vec) { cout << num; }` |
五、注意事项
- `vector` 的大小可以动态变化,但频繁的插入和删除可能会影响性能。
- 使用 `at()` 方法比直接使用 `[]` 更安全,因为它会检查索引是否越界。
- `reserve()` 用于预分配内存,减少多次重新分配带来的开销。
- `resize()` 会改变 vector 的实际大小,而 `reserve()` 只是预留空间。
总结
`vector` 是 C++ 中功能强大且灵活的容器之一,适用于各种数据存储和处理场景。掌握其基本用法和操作,能够显著提升程序的效率和可读性。通过上述表格内容,可以快速了解 `vector` 的常用方法和使用技巧,帮助开发者更高效地进行开发工作。


