vector是C++ STL中动态数组容器,需包含头文件<vector>并使用std命名空间;可定义空容器、指定大小初始化、赋初值或拷贝构造;常用操作包括push_back、pop_back、insert、erase、clear添加删除元素,通过下标、at、front、back访问元素,size、empty、capacity管理容量,resize和reserve调整空间;遍历方式有下标循环、迭代器和范围for循环;示例展示添加元素、输出大小与内容及删除末尾元素等基本操作。

在C++中,vector 是最常用的标准模板库(STL)容器之一。它是一个动态数组,能够自动管理内存,支持在运行时动态添加或删除元素,同时提供高效的随机访问能力。下面详细介绍 vector 的基本用法和常见操作。
1. 包含头文件与定义vector
使用 vector 需要包含头文件 <vector>,并使用 std 命名空间。
#include <vector>
using Namespace std;
定义 vector 的基本语法:
- vector<int> v1; // 创建一个空的整型vector
- vector<double> v2(5); // 创建包含5个元素的vector,初始值为0.0
- vector<int> v3(3, 10); // 创建3个元素,每个值为10
- vector<int> v4 = {1, 2, 3, 4}; // C++11 支持初始化列表
- vector<int> v5(v1); // 拷贝构造另一个vector
2. 常用成员函数与操作
vector 提供了丰富的成员函数来操作数据。
立即学习“C++免费学习笔记(深入)”;
添加与删除元素:
- v.push_back(x):在末尾插入元素x
- v.pop_back():删除最后一个元素
- v.insert(pos, x):在指定位置插入元素
- v.erase(pos) 或 v.erase(start, end):删除指定位置或区间元素
- v.clear():清空所有元素
访问元素:
- v[i]:通过下标访问(不检查越界)
- v.at(i):访问第i个元素(会做越界检查,越界抛出异常)
- v.front():返回第一个元素
- v.back():返回最后一个元素
容量与大小相关:
- v.size():返回当前元素个数
- v.empty():判断是否为空,返回true/false
- v.capacity():返回当前分配的存储容量
- v.resize(n) 或 v.resize(n, val):调整大小,不足补默认值或val
- v.reserve(n):预分配n个元素的空间,避免频繁扩容
3. 遍历vector的方法
有多种方式可以遍历 vector 中的元素。
- 下标循环:
for (int i = 0; i < v.size(); ++i) {
cout << v[i] << ” “;
} - 迭代器遍历:
for (auto it = v.begin(); it != v.end(); ++it) {
cout << *it << ” “;
} - 范围for循环(C++11):
for (int x : v) {
cout << x << ” “;
}
4. 实际使用示例
下面是一个简单的例子,演示 vector 的基本操作:
vector<int> nums;
nums.push_back(10);
nums.push_back(20);
nums.push_back(30);
cout << “大小:” << nums.size() << endl;
cout << “第一个元素:” << nums.front() << endl;
// 遍历输出 for (int n : nums) {
cout << n << ” “;
}
cout << endl;
nums.pop_back(); // 删除最后一个 cout << “删除后大小:” << nums.size() << endl;
基本上就这些。vector 使用灵活、功能强大,是处理动态数组的首选工具。掌握它的常用方法,能显著提升 C++ 编程效率。注意避免对已失效的迭代器进行操作,特别是在插入或删除后及时更新。基本上就这些。


