数组:array 容器:vector
数组与容器最大的区别是声明时数组的大小固定且保持不变,vector是序列容器,可改变大小的数组。
接下来,分别详细分析数组与容器的不同
声明: array是一个包装固定大小数组的容器,因此声明时必须确定其大小
array<datatype,array_size>array_name;
例:array<int,3> n={1,2,3};
vector 不需要指定数组长度及数据类型
vector<datatype> array_name;
例:vector<int> marks;
初始化:数组需要在声明时进行赋值进行初始化!!!
方法一:array<int,3> n={1,2,3};
方法二:array<int,3> n{{1,2,3}};
方法三:array n;
n={1,2,3};
vector与array初始化相同
大小:array.size();
mark.size();
传递函数:void printArray(const array<int,4> &n)
void printVector(const vector<int> &n)
功能函数:at():访问指定位置的元素
front()、back():取第一个、最后元素
max_size():可容纳的最大元素数
容器:v.resize() 包含指定数量的元素
v.push_back() 末尾添加一个新元素
v.pop_back() 删除最后一个元素
v.capacity() 返回向量分配的存储空间
v.reserve() 所需元素大于vector的容量时,增加向量的容量
v.insert(v.begin(),100)指定位置前插入元素
v.earse()删除一个或多个元素
Iterarors:迭代器,一种指向项,指向容器元素,拥有迭代容器的功能
begin(),end();
反向容器:rebegin(),rend()
多维数组:array<array<int,3>,3>a {{{1,2,3},{4,5,6},{7,8,9}}};
多维容器:vector<vector<int>> v{{{1,2,3},{4,5,6},{7,8,9}}};