C++中vector是STL的动态数组,需包含头文件;支持空初始化、指定大小、列表初始化等多种方式;常用push_back和emplace_back添加元素,insert插入元素;通过size()和capacity()获取大小与容量,reserve()预分配空间以提升性能。

在C++中,vector 是 STL 提供的动态数组容器,能自动管理内存,支持随机访问,并可动态扩展。使用 vector 前需包含头文件
vector 的初始化方式
vector 提供多种初始化方法,适用于不同场景:
-
空初始化:创建一个空 vector,后续可通过 push_back 添加元素。
std::vectorvec; -
指定大小:创建包含 n 个默认值的 vector。
std::vectorvec(5); // 5 个 0 -
指定大小和初始值:
std::vectorvec(5, 10); // 5 个 10 -
用数组初始化:
int arr[] = {1, 2, 3};
std::vectorvec(arr, arr + 3); -
用另一个 vector 初始化:
std::vectorvec1 = {1, 2, 3};
std::vectorvec2(vec1); -
列表初始化(C++11 起):
std::vectorvec = {1, 2, 3, 4};
添加元素的方法
vector 支持多种方式添加元素,最常用的是 push_back 和 insert。
-
push_back():在末尾添加一个元素。
vec.push_back(5); // 添加整数 5 -
emplace_back():直接在末尾构造元素,比 push_back 更高效(避免临时对象)。
vec.emplace_back(6); -
insert():在指定位置插入元素或一段元素。
vec.insert(vec.begin() + 1, 10); // 在索引 1 处插入 10
vec.insert(vec.end(), {7, 8, 9}); // 在末尾插入多个值
容量与扩展机制
vector 内部使用动态数组,当空间不足时会自动重新分配内存(通常是当前容量的两倍),并将原数据复制过去。
立即学习“C++免费学习笔记(深入)”;
-
size():当前元素个数
vec.size(); -
capacity():当前分配的存储空间大小
vec.capacity(); -
reserve(n):预分配至少 n 个元素的空间,避免频繁扩容。
vec.reserve(100); -
resize(n):改变 vector 大小,若 n > size(),新增元素用默认值填充。
vec.resize(10);
基本上就这些。掌握初始化、添加元素和容量控制,就能高效使用 vector。注意频繁 push_back 时尽量提前 reserve,提升性能。











