C++ vector 容器常用操作
·
一、vector 是什么
vector 是动态数组,连续内存空间,支持随机访问,尾部增删效率高,中间插入删除慢,是最常用的 STL 序列容器。
头文件:
cpp
运行
#include <vector>
using namespace std;
二、常用构造方式
cpp
运行
// 1. 空容器
vector<int> v1;
// 2. n个初始值
vector<int> v2(5, 10);
// 3. 初始化列表
vector<int> v3 = {1,2,3,4};
// 4. 拷贝构造
vector<int> v4(v3);
三、增删改查 核心操作
1. 添加元素
cpp
运行
// 尾部追加
v.push_back(10);
// 尾部构造元素(更高效)
v.emplace_back(20);
// 指定位置插入
v.insert(v.begin(), 99);
2. 删除元素
cpp
运行
// 删除最后一个元素
v.pop_back();
// 删除指定迭代器位置元素
v.erase(v.begin());
// 删除区间 [左, 右)
v.erase(v.begin(), v.begin()+2);
// 清空所有元素
v.clear();
3. 访问元素
cpp
运行
// 下标随机访问
v[0];
// 越界安全检查
v.at(0);
// 首元素
v.front();
// 尾元素
v.back();
// 获取底层数组首地址
int* p = v.data();
四、容量与大小操作
cpp
运行
// 实际元素个数
v.size();
// 容器最大可容纳数量
v.max_size();
// 容器已分配内存容量
v.capacity();
// 是否为空
v.empty();
// 预留空间,避免频繁扩容
v.reserve(100);
// 收缩容量到实际元素大小
v.shrink_to_fit();
// 重置元素个数
v.resize(10);
五、遍历方式
cpp
运行
// 1. 下标遍历
for(int i=0;i<v.size();i++){ cout<<v[i]; }
// 2. 迭代器遍历
for(vector<int>::iterator it = v.begin();it!=v.end();it++){}
// 3. 范围for
for(auto x : v){ cout<<x; }
六、常用赋值与交换
cpp
运行
// 赋值
v.assign(3, 66);
// 交换两个vector
swap(v1, v2);
七、vector 重点特性(必记)
- 底层连续内存,支持下标随机访问。
- 尾部加删快,中间插入删除要移动元素,效率低。
- 空间不够会自动扩容,重新申请内存、拷贝旧元素、释放旧空间。
- 插入、扩容、删除中间元素容易造成迭代器失效。
八、极简总结
增:push_back、emplace_back、insert删:pop_back、erase、clear查:[]、at、front、back容量:size、capacity、reserve、resize遍历:下标、迭代器、范围 for
更多推荐




所有评论(0)