vector和数组的性能区别

时间:2025-03-08 08:35:29

1、显示初始化数组元素的时候用{}括起来,成为初始化列表;不管数组在哪里定义,如果其元素为类类型,则自动调用该类的默认构造函数进行初始化,如果该类没有默认构造函数,则必须为该数组的元素提供显式初始化;在函数体外定义的内置数组,其元素全部初始化为在函数体内定义的内置数组,无初始化。

2、数组和vector不同,一个数组不能用另一个数组初始化,也不能将一个数组赋值给另一个数组;

3、如果指定了数组维度,初始化的元素个数不能超过维数值;若小于,内置类型则初始化为类类型则调用该类的默认构造函数进行初始化。

4、在用下标访问元素时,vector使用vector::size_type作为下标的类型,而数组下标的正确类型则是size_t;

5、数组的维度必须用[]内指定;

6、和vector不同,数组不提供push_back或者其他的操作在数组中添加新元素,数组一经定义就不允许添加新元素;若需要则要充许分配新的内存空间,再将员数组的元素赋值到新的内存空间。

7、数组必须用值大于等于1的常量表达式定义,且只能包含整型字面值常量,枚举常量或者用常量表达式初始化的整型const对象,非const变量以及需要到运行阶段才知道其值的const变量都不能用来定义数组的维度;