C++11新增模板类array原因

vector类的功能比数组强大,但效率没有数组高(vector对象分配在自由存储区或堆中)。

效率来讲内置数组是最高的,但是会不安全不方便,如下标越界、两个数组赋值要用循环一个个赋值。

以上两点,C++11中就新增了array类模板,来解决内置数组不安全不方便,相比vector提高效率(array对象分配在栈中)。

验证array类对象存储:

对象存储地址输出结果:

内置数组A:0019FE90
Vector对象VectA:02265BB0
array对象ArrA:0019FE50
array对象ArrA1:0019FE28
请按任意键继续. . .

从上可以看出只有,Vector对象VectA:02265BB0是不在同一个内存区域

array类对象赋值与数组赋值比较:

从上面赋值代码可以看出,array对象赋值更方便。

array类对象元素访问与数组元素访问比较:

array对象可以用at()成员函数访问元素,较下标访问更安全。