模板类vector和array是数组的替代品。

模板类vector

vector是一种动态数组,使用堆分配内存,可以增、删、改、查,缺点是效率低。

#include<vector>
...
using namespace std;

std::vector<int> temp;
int n;
cin>>n;
std::vector<double> temp1(n);//创建n个原始的数组

模板类array(c++11)

vector类的功能比数组强大,但付出的代价是效率稍低,如果使用的是长度固定的数组,使用数组是更好的选择,但是代价是不那么方便和安全。有鉴于此,c++11新增了模板类array。与数组一样array对象的长度是固定的。也是使用栈,而不是堆。其侠侣和数组相同,但更加的方便和安全。可以将一个array对象赋值给另外一个array对象。

对于安全是使用.at()成员函数,可以检查越界,如果使用索引仍然为不安全的。

#include<array>
...
using namespace std;

std::array<int,5> temp;

std::array<double,4> temp1;

在c++11中,可将初始化列表用于vector和array