C++ std::vector - 详解
2025-09-16 16:16 tlnshuju 阅读(19) 评论(0) 收藏 举报什么是 std::vector?
std::vector 是 C++ 标准库中的一个动态数组容器。它像一个“智能数组”,可以自动管理内存,自由增删元素,无需手动计算大小。
#include // 必须包含头文件
1. 创建 vector
std::vector v; // 空的 int 向量
std::vector v(5); // 5个元素,初始为0
std::vector v(5, 10); // 5个元素,都为10
std::vector v = {1,2,3}; // 初始化列表
2. 添加元素
v.push_back(4); // 在末尾添加 4
v.push_back(5); // 现在 v = {1,2,3,4,5}
3. 访问元素
cout << v[0]; // 第一个元素(不检查越界)
cout << v.at(0); // 第一个元素(会检查越界)
cout << v.front(); // 第一个元素
cout << v.back(); // 最后一个元素
4. 删除元素
v.pop_back(); // 删除最后一个元素
5. 获取大小
v.size(); // 当前元素个数
v.empty(); // 是否为空(true/false)
常用操作
| 操作 | 代码 | 说明 |
|---|---|---|
| 添加 | v.push_back(x) | 尾部添加 |
| 删除 | v.pop_back() | 删除尾部 |
| 清空 | v.clear() | 删除所有 |
| 判断空 | v.empty() | 返回 bool |
| 大小 | v.size() | 元素个数 |
| 容量 | v.capacity() | 当前容量 |
| 预留空间 | v.reserve(n) | 预分配内存 |
遍历 vector 的 3 种方式
方式1:下标遍历(最常用)
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
方式2:范围 for 循环
for (int x : v) {
cout << x << " ";
}
方式3:迭代器
for (auto it = v.begin(); it != v.end(); ++it) {
cout << *it << " ";
}
vector 和数组的区别?
vector 可变长,数组固定长。
vector 自动管理内存,数组不会。
如何避免频繁扩容?
v.reserve(100); // 预先分配空间
能存哪些类型?
std::vector // 整数
std::vector // 字符串
std::vector> // 二维数组
std::vector // 自定义结构体
总结
| 特点 | 说明 |
|---|---|
| ✅ 动态大小 | 自动扩容 |
| ✅ 安全访问 | at() 检查越界 |
| ✅ 高效操作 | 尾插尾删 O(1) |
| ✅ 易于使用 | 语法简洁 |
| ✅ 标准推荐 | STL 核心容器 |
浙公网安备 33010602011771号