- 2022tysc1451 的博客
vector
- 2025-6-11 17:35:24 @
以下是C++ vector用法的表格总结:
类别 | 方法/操作 | 说明 | 时间复杂度 |
---|---|---|---|
创建初始化 | vector<T> v; |
创建空vector | - |
vector<T> v(n); |
创建含n个默认初始化元素的vector | O(n) | |
vector<T> v(n, value); |
创建含n个指定value的vector | ||
vector<T> v = {a,b,c}; |
列表初始化 | ||
元素访问 | v[i] |
通过下标访问(不检查边界) | O(1) |
v.at(i) |
通过下标访问(检查边界,越界抛出异常) | ||
v.front() |
访问第一个元素 | ||
v.back() |
访问最后一个元素 | ||
v.data() |
返回指向底层数组的指针 | ||
容量查询 | v.size() |
返回元素数量 | |
v.capacity() |
返回当前分配的内存容量 | ||
v.empty() |
判断是否为空 | ||
修改操作 | v.push_back(value) |
在末尾添加元素 | 均摊O(1) |
v.emplace_back(args...) |
在末尾就地构造元素(更高效) | ||
v.pop_back() |
删除末尾元素 | O(1) | |
v.insert(pos, value) |
在指定位置插入元素 | O(n) | |
v.erase(pos) |
删除指定位置元素 | ||
v.clear() |
清空所有元素 | ||
内存管理 | v.reserve(n) |
预分配至少能容纳n个元素的空间 | |
v.resize(n) |
调整元素数量 | ||
v.shrink_to_fit() |
请求移除未使用的容量 | ||
迭代器 | v.begin()/v.end() |
返回指向首元素/尾后位置的迭代器 | O(1) |
v.rbegin()/v.rend() |
返回反向迭代器 | ||
v.cbegin()/v.cend() |
返回常量迭代器 |