array是新C++标准增加的类型。与内置数组相比,array是一种更安全、更容易使用的数组类型。
既然C++ Primer这么说了,那就学一下吧。
array<int,42>p
构造,规定数组元素类型和大小。
array<int,42>p={1,2,3}
初始化列表,前三个位置为相应数字,之后的是默认值。
这里因为有默认值,所以如果构造类型是自定义的类,这个类就必须有默认构造才能这样初始化。
相比普通的内置数组,这种数组支持拷贝操作
array<int,10>q=p
或者
array<int,10>q(p)
但是在拷贝的时候注意数组大小必须一致,可以认为只要大小不一样就是两种类型的数组,自然不能拷贝。
同时这种数组也支持赋值操作
array<int,10> a1={1,2,3};
array<int,10>a2={0};
a1=a2;//替换a1中的元素
a2={0}//错误,不能讲花括号赋值给数组
另外相对别的顺序容器,array并不支持assign。