【c中vector的用法详解】在C++中,`vector` 是一个非常常用且功能强大的容器类,它提供了动态数组的功能,能够根据需要自动扩展或收缩大小。与传统的数组相比,`vector` 更加灵活、安全,并且拥有丰富的成员函数来操作数据。本文将对 `vector` 的基本用法进行详细总结,并通过表格形式展示其主要方法和用途。
一、vector的基本概念
`vector` 是 C++ 标准库中的一个模板类,位于 `
使用方式如下:
```cpp
include
using namespace std;
vector
```
二、vector的主要操作及说明
| 操作 | 说明 | 示例 |
| `vector | 创建一个空的vector | `vector |
| `vector | 创建一个包含n个默认值的vector | `vector |
| `vector | 创建一个包含n个val值的vector | `vector |
| `v.push_back(val);` | 在vector末尾添加一个元素 | `v.push_back(5);` |
| `v.pop_back();` | 删除vector最后一个元素 | `v.pop_back();` |
| `v.size();` | 返回当前vector中元素的数量 | `int size = v.size();` |
| `v.empty();` | 判断vector是否为空 | `if (v.empty()) ...` |
| `v.clear();` | 清空vector中的所有元素 | `v.clear();` |
| `v.at(index);` | 返回指定位置的元素(带边界检查) | `int x = v.at(2);` |
| `v[ index ];` | 返回指定位置的元素(不带边界检查) | `int x = v[2];` |
| `v.insert(pos, val);` | 在指定位置插入一个元素 | `v.insert(v.begin(), 10);` |
| `v.erase(pos);` | 删除指定位置的元素 | `v.erase(v.begin());` |
| `v.erase(start, end);` | 删除从start到end之间的元素 | `v.erase(v.begin(), v.end()-1);` |
| `v.resize(n);` | 调整vector的大小为n | `v.resize(10);` |
| `v.reserve(n);` | 预分配n个元素的空间 | `v.reserve(100);` |
三、vector的遍历方式
- 使用下标索引:
```cpp
for (int i = 0; i < v.size(); ++i) {
cout << v[i] << " ";
}
```
- 使用迭代器:
```cpp
for (vector
cout << it << " ";
}
```
- 使用范围for循环(C++11及以上):
```cpp
for (int num : v) {
cout << num << " ";
}
```
四、vector的性能特点
- 优点:
- 支持随机访问,效率高。
- 动态扩展,无需手动管理内存。
- 提供丰富的操作接口。
- 缺点:
- 插入或删除中间元素时,可能引发大量数据移动,影响性能。
- 内存占用相对较高,适合中等规模的数据。
五、总结
`vector` 是 C++ 中最常用的容器之一,适用于大多数需要动态数组的场景。掌握其基本操作和使用方式,可以大大提高编程效率。在实际开发中,应根据具体需求选择合适的方法,例如在频繁插入删除时考虑其他容器如 `list` 或 `deque`。
通过合理使用 `vector`,开发者可以更专注于逻辑实现,而无需过多关注底层内存管理问题。


