使用vector需要包含头文件
什么是vector
向量是一个能够存放任意类型的动态数组。
初始化
一、不带参数
// 定义了一个int类型的容器
vector<int> v1;
// 定义了一个double类型的容器
vector<double> v2;
容器可以使用数组方式获取它的值和赋值,但需要提前分配内存空间
例子:
vector<int> v1;
// 不可以使用数组方式给他赋值,因为容器并没有给他分配内容空间
v1[0] = 1; // 错误,因为没有分配空间
// 可以使用数组方式给他赋值:
vector<int> v2(10); //分配了10个空间
v2[0] = 1; // 正确
v2[11] = 11; // 错误,越界
二、带参数
1、分配十个空间
ector<int> v1(10);//int类型默认都是0
2、定义时同时赋值
vector<int> v3(10, 666);//默认所有元素都是666
3、使用其他容器初始化自己
vector<int> v1(5, 666);
vector<int> v2(v1); // v1 和 v2 相等
vector<int> v1(5, 666);
vector<int> v2(v1.begin(), v1.end()); //使用 返回迭代器 的方式将一个容器的元素全都赋值给自己
vector<int> v1(5, 666);
// 将v1的元素从第三个元素到最后的元素赋值给v2
vector<int> v2(v1.begin() + 2, v1.end()); //begin 和 end 返回来的就是一个指针迭代器,所以可以进行加减操作,指向其他元素的位置
4、可以使用数组来初始化容器
vector常用方法
size 获取容器的元素个数 v1.size();
capacity 获取容器的大小 v1.capacity();
begin 获取容器第一个元素的迭代器 v1.begin();
end 指向容器最后一个元素的下一个位置的迭代器 v1.end();
empty 判断容器是否为空 if (v1.empty() == NULL) {}
push_back 尾部添加一个元素 v1.push_back(1); // 在尾部增加要给1
pop_back 尾部删除一个元素 v1.pop_back(); // 在尾部删除一个元素
at 对应位置 v1.at(0) = 1; 改值 v1.at(3) 对应元素
front 获取容器的第一个元素 v1.front() = 111;
back 获取容器的最后一个元素 v1.back() = 222; // 给最后一个元素赋值222
insert 元素的插入
// 往第一个元素的位置插入一个5
v1.insert(v1.begin(), 5);
// 从第三个元素位置开始插入5个222
v1.insert(v1.begin() + 2, 5, 222);
// 从第二个元素开始插入v2的所有值
v1.insert(v1.begin() + 1, v2.begin(), v2.end());
erase 与 clear 元素删除
// 删除第一个元素
v1.erase(v1.begin());
// 删除第一个到第三个元素
v1.erase(v1.begin(), v1.begin() + 3);
// 删除全部元素
v1.clear();
assign 赋值 类似重新初始化
resize 将容器缩小和变大