【C++】复合类型之vector和array模板(二)
3、比较数组、vector对象和array对象
从一个程序开始:
输出结果:
需要注意的地方:
(1) 一个array对象可以赋给另一个array对象,而数组,必须逐个元素复制数据。
(2) 注意这个语句:a1[-2] = 20.2;
其含义是:找到a1指向的地方,向前移两个double元素,并将20.2存储到目的地。也就是说,将信息存储在数组的外面。与C语言一样,C++也不检查这种超界错误。
vector和array对象能够禁止这种行为吗?可以选择使用成员函数at()。
使用at()时,将在运行期间捕获非法索引,而程序默认将中断。这种额外的检查的代价是运行时间更长,这就是C++让允许您使用任何一种表示法的原因所在。