先上简单的一个实例:
#include <iostream>
#include <vector>
#include <array>
int main()
{
using namespace std;
//C,original C++
double a1[4] = {1.2,2.4,3.6,4.8};
//C++98 STL
vector<double> a2(4); //creat vector with 4 elements
//no simple way to initinaize in C98
a2[0] = 1.0/3.0;
a2[1] = 1.0/5.0;
a2[2] = 1.0/7.0;
a2[3] = 1.0/9.0;
//C++ -- creat and initinaize array object
array<double,4> a3 = {3.14,2.72,1.62,1.41};
array<double,4> a4 ;
a4 = a3; //valid for array objects of same size
return 0;
}
首先注意到,无论是数组,vector对象还是array对象,都可使用标准的数组表示法来访问各个元素。其次,从地址可知,array对象和数组存储在相同的内存区域(栈)中,而vector对象存储在另一个区域(堆)中,第三,注意到可以将一个array对象赋给另一个array对象,而对于数组,则必须逐个元素复制数据。