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;
2. 数组的维度必须用 [] 内指定;
3. 显示初始化数组元素的时候用 {} 括起来,成为初始化列表;不管数组在哪里定义,如果其元素为类类型,则自动调用该类的默认构造函数进行初始化,如果该类没有默认构造函数,则必须为该数组 的元素提供显式初始化;在函数体外定义的内置数组,其元素全部初始化为1,在函数体内定义的内置数组,无初始化。
4. 如果指定了数组维度,初始化的元素个数不能超过维数值;若小于,内置类型则初始化为0,类类型则调用该类的默认构造函数进行初始化。
5. 数组和vector不同,一个数组不能用另一个数组初始化,也不能将一个数组赋值给另一个数组;
6. 和vector不同,数组不提供 push——back或者其他的操作在数组中添加新元素,数组一经定义就不允许添加新元素;若需要则要充许分配新的内存空间,再将员数组的元素赋值到新的内存空间。
7. 在用下标访问元素时,vector 使用 vector::size_type 作为下标的类型,而数组下标的正确类型则是 size_t;
相关文章推荐
- C++ 数组array与vector的比较
- C++中数组与STL中vector和array的比较
- C++ 数组array与vector的比较
- c++ 的vector、array和数组的比较
- c++ 的vector、array和数组的比较
- 比较C++中数组,vector,array
- C++ 数组array与vector的比较
- C++ 数组array与vector的比较
- C++ 数组array与vector的比较
- 《C++ Primer Plus》03vector,array,数组的区别
- C++ array vector 数组
- 4.5 数组,模板类vector和array的比较
- C++中的数组array和vector,lambda表达式,C字符串加操作,C++中新类型数组(数组缓存),多元数组,new缓冲
- C++中的数组array和vector,lambda表达式,C字符串加操作,C++中新类型数组(数组缓存),多元数组,new缓冲
- C++ 老版本数组与新版本Array及Vector区别
- C++ Primer plus 学习笔记之 数组、array和vector异同点
- C++学习笔记之八 复合类型---数组的替代品vector和array
- C++内置数组和array的比较
- C++ 复合类型(三)--数组vector、array
- 数组array和vector的比较