vector是C++ STL中动态数组容器,需包含头文件,支持自动内存管理和动态扩容;可定义为空、指定长度或初始化值;常用操作包括push_back、pop_back、size、empty、clear、front、back、data等成员函数;遍历方式有下标、范围for循环和迭代器三种;支持在任意位置用insert插入和erase删除元素;适用于多数场景,但应避免频繁中间插入删除以保证效率。

在C++中,vector 是最常用的动态数组容器之一,属于标准模板库(STL)的一部分。它能自动管理内存,支持动态扩容,使用起来非常方便。下面详细介绍 vector 的基本用法和常见操作。
包含头文件与定义vector
要使用 vector,必须包含对应的头文件:
#include然后可以通过以下方式定义 vector:
- std::vector
vec; // 定义一个空的int类型vector - std::vector
vec(5); // 定义长度为5,元素初始化为0.0 - std::vector
vec(3, 10); // 长度为3,每个元素都是10 - std::vector
vec2(vec); // 用另一个vector初始化
常用成员函数操作
vector 提供了丰富的成员函数来管理数据:
立即学习“C++免费学习笔记(深入)”;
- vec.push_back(x):在末尾添加一个元素x
- vec.pop_back():删除最后一个元素
- vec.size():返回当前元素个数
- vec.empty():判断是否为空,返回true/false
- vec.clear():清空所有元素
- vec[i] 或 vec.at(i):访问第i个元素(at会做越界检查)
- vec.front():返回第一个元素
- vec.back():返回最后一个元素
- vec.data():返回指向内部数组首地址的指针
遍历vector的方法
有多种方式可以遍历 vector 中的元素:
- 下标遍历: for (int i = 0; i std::cout }
-
范围for循环(C++11起):
for (const auto& x : vec) {
std::cout } -
迭代器遍历:
for (auto it = vec.begin(); it != vec.end(); ++it) {
std::cout }
插入与删除指定位置元素
除了在尾部操作,还可以在任意位置插入或删除:
- vec.insert(it, value):在迭代器 it 指向的位置前插入 value
- vec.erase(it):删除 it 指向的元素
- vec.erase(start, end):删除从 start 到 end 范围内的元素
示例:
vec.insert(vec.begin() + 1, 99); // 在索引1处插入99vec.erase(vec.begin()); // 删除第一个元素
基本上就这些核心操作。vector 使用灵活、性能良好,是替代原生数组的首选。只要注意避免频繁在中间插入删除(效率低),其他场景都非常适合。










