vector是C++中常用动态数组,支持自动内存管理与随机访问。其初始化方式包括:默认初始化创建空容器;指定大小初始化所有元素为默认值;指定大小和初始值;使用初始化列表赋值;通过迭代器从数组或其他vector构造。添加元素主要用push_back在末尾插入已构造对象,emplace_back直接在容器内构造对象以提升效率,insert可在指定位置插入单个或多个元素。实用技巧包括:使用reserve预先分配空间以减少重分配开销;区分size(当前元素数)与capacity(最大容量);clear清空元素但不释放内存,可用swap技巧释放;访问元素时at提供边界检查更安全。熟练掌握这些方法可显著提升代码性能与安全性。

在C++中,vector 是最常用的标准库容器之一,它是一个动态数组,能自动管理内存,支持随机访问,并且可以方便地添加和删除元素。掌握 vector 的初始化方式和元素添加技巧,对日常编程非常重要。
vector的常见初始化方式
根据使用场景,vector 提供了多种初始化方法:
- 默认初始化:创建一个空 vector,后续可动态添加元素。
std::vector
- 指定大小初始化:创建固定大小的 vector,所有元素初始化为默认值(如 int 为 0)。
- 指定大小和初始值:所有元素设为指定值。
- 用初始化列表赋值(C++11起):直接传入一组值。
- 从数组或另一个 vector 构造:使用迭代器范围。
std::vector
立即学习“C++免费学习笔记(深入)”;
std::vector
std::vector
int arr[] = {10, 20, 30};
std::vector vec(arr, arr + 3);
std::vector
向vector添加元素的方法
vector 提供了几个常用函数来动态添加元素,最核心的是 push_back 和 emplace_back。
- push_back():在末尾插入一个已构造的对象。
vec.push_back(6); // 添加整数6
- emplace_back():直接在末尾构造对象,避免临时对象的生成,效率更高,尤其适用于复杂对象(如类类型)。
vec.emplace_back(7); // 等价于 push_back(7),但更高效
- insert():在指定位置插入元素或一段元素。
vec.insert(vec.begin(), 0); // 在开头插入0
vec.insert(vec.end(), {8, 9}); // 在末尾插入多个值
实用技巧与注意事项
- 预先分配空间提升性能:如果知道大概元素数量,使用 reserve() 避免频繁内存重分配。
vec.reserve(100); // 预留100个元素的空间
- size() 与 capacity():size 返回当前元素个数,capacity 返回已分配的容量,不重新分配的前提下最多能存多少。
- clear() 清空但不释放内存:若想真正释放内存,可使用 swap 技巧:
std::vector
-
访问元素建议使用 at() 或 []:
[]不检查边界,at()会抛出异常,调试时更安全。











