这一节主要了解vector用法,向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。一般使用它时需要导入vector头文件,如下:
#include <vector>
std::vector<T> vector_name;
容器特性
1.顺序序列
顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。
2.动态数组
支持对序列中的任意元素进行快速直接访问,甚至可以通过指针算述进行该操作。提供了在序列末尾相对快速地添加/删除元素的操作。
3.能够感知内存分配器的(Allocator-aware)
容器使用一个内存分配器对象来动态地处理它的存储需求。
常见API:
栗子:
#include <iostream>
#include <vector>
using namespace std;
int main() {
// 初始化
vector<int> vector1 = {1, 2, 3, 4, 5};
vector<int> vector2{6, 7, 8, 9, 10};
vector<int> vector3(5, 12);
cout << "vector1 = ";
for (const int& i : vector1) {
cout << i << " ";
}
cout << "\nvector2 = ";
for (const int& i : vector2) {
cout << i << " ";
}
cout << "\nvector3 = ";
// ranged loop
for (int i : vector3) {
cout << i << " ";
}
// 添加元素
vector1.push_back(6);
vector1.push_back(7);
cout << "\nUpdated vector1: ";
for (const int& i : vector1) {
cout << i << " ";
}
//访问元素
cout << "Element at Index 2: " << vector1.at(2) << endl;
//改变元素
vector1.at(2) = 9;
cout << "Element changed at Index 2: " << vector1.at(2) << endl;
//删除最后一个元素
vector1.pop_back();
for (int i : vector1) {
cout << "After delete Show Content : "<<i << "\n ";
}
return 0;
}
输出:
vector1 = 1 2 3 4 5
vector2 = 6 7 8 9 10
vector3 = 12 12 12 12 12
Updated vector1: 1 2 3 4 5 6 7 Element at Index 2: 3
Element changed at Index 2: 9
After delete Show Content : 1
After delete Show Content : 2
After delete Show Content : 9
After delete Show Content : 4
After delete Show Content : 5
After delete Show Content : 6