您的位置:首页 > 编程语言 > C语言/C++

C++ 数组array与vector的比较

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

2. 数组的维度必须用 [] 内指定;

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

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

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

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

7. 在用下标访问元素时,vector 使用 vector::size_type 作为下标的类型,而数组下标的正确类型则是 size_t;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: