是 C++ 标准库中的动态数组容器,提供了动态大小的数组功能,可以在运行时动态地增加或减少元素。它属于序列容器(Sequence Containers)的一种,支持快速随机访问和在尾部的常量时间插入、删除。
std::vector 的大小可以在运行时动态变化。它会自动处理内存的分配和释放,因此你可以在程序运行时根据需要动态地添加或删除元素。
函数用法
-
vector<int> v:创建一个 vector,里面的每个元素都是 int 类型
-
vector<int> v(3, 10):创建包含 3 个元素的 vector,每个元素初始值为 10
-
v.capacity():返回重新分配空间前可容纳的最大元素数量
-
v.size():返回vector中元素的个数
-
v.reserve(n):扩大容量为 n
-
v.at(i):返回索引 i 所标识的元素,对 i 会越界检查
-
v[i]:返回索引 i 所标识的元素,和数组用法几乎完全相同,对 i 不越界检查
-
v.push_back(e):在尾部添加一个元素 e
-
v.pop_back():移除最后一个元素但不返回最后一个元素
-
v.front():返回第一个元素,不检查第一个元素是否存在
-
v.back():返回最后一个元素,不检查最后一个元素是否存
-
v.clear():移除所有元素,清空容器
-
v.resize(num):将元素数量改为 num
-
v.resize(num, e):将元素数量改为 num ,默认值是 e
-
v.insert(pos, e):在 pos 位置插入元素 e ,并返回新元素位置
-
v.insert(pos, n, e):在 pos 位置插入 n 个元素 e
-
v.insert(pos, v1.begin, v1.end):在 pos 位置插入区间 v1[begin, end) 的元素
-
v.erase(pos):删除 pos 位置的元素,返回下一个元素的位置
-
v.erase(begin, end):删除区间[begin, end)内所有元素,返回下一个元素的位置
参考程序
// 爱码岛编程
#include <bits/stdc++.h>
using namespace std;
vector<int> v(3, 10);// 初始化
int main(){
cout << v.capacity() << endl; //容量
cout << v.size() << endl; //元素个数
v.push_back(100); // 加入元素
// v.reserve(100); // 改变容量大小
cout << v.capacity() << endl;
cout << v.size() << endl;
v.push_back(200);
v.push_back(300);
// 循环遍历
for(int i = 0; i < v.size(); i++){
cout << v.at(i) << " "; //v[i]
}
cout << endl;
v.pop_back();
for(int i = 0; i < v.size(); i++){
cout << v.at(i) << " "; //v[i]
}
cout << endl;
v.resize(10, 100); // 改变元素个数为10,并将新元素初始化值为100
for(int i = 0; i < v.size(); i++){
cout << v.at(i) << " "; //v[i]
}
return 0;
}