特点
- 动态数组容器:
- 内部使用连续内存空间,支持随机访问。
- 容量自动扩展,使用时不用手动分配空间。
- 支持快速尾部插入与删除:
push_back()、pop_back() 操作是平均 O(1)。
- 元素访问性能好:
- 支持
operator[] 和 at(),都可以在 O(1) 时间内访问任意位置元素。
- 自动管理内存:
- 元素数量增加时自动分配新空间并拷贝旧元素。
- 可手动调用
reserve() 提前分配空间。
- 兼容迭代器算法:
- 与 STL 算法(如
sort、find 等)无缝协作。
初始化操作
一、构造函数初始化
1. 默认构造(空 vector)
std::vector<int> v; // 空 vector,size = 0
2. 指定大小构造(元素默认初始化)
std::vector<int> v(5); // v = {0, 0, 0, 0, 0
3. 指定大小与初始值构造
std::vector<int> v(5, 42); // v = {42, 42, 42, 42, 42}
4. 拷贝构造(从另一个 vector 拷贝)
std::vector<int> a = {1, 2, 3};
std::vector<int> b(a); // b = {1, 2, 3}