数组的替代品:模板类vector、模板类array
模板类vector:
1. 模板类vector是一种动态数组,可在运行阶段根据需要设置vector对象的长度,自动使用new和delete管理内存
2. <1>要使用vector对象,必须包含头文件vector;<2>vector包含在名称空间std中;<3>vector类使用不同的语法来指出它存储的数据类型:vector<typeName> vectorname;
<4>vector类使用不同的语法来指定元素数:vector<typeName> vectorname(n_elem); 其中参数n_elem可以使整型常量也可是整型变量
3. vector类对象在插入或添加值时自动调整长度,所以可以将其初始长度设置为0,但如果要手动调整长度,则需要使用vector包中的各种方法
4. vector类的功能比数组强大,但是效率相对较低,而数组相较之而言则在安全性方面不如前者
5. 可以用标准数组表示法,即下标索引,来访问vector对象的各个元素
6. vector对象存储在堆中
7. 可使用成员函数at()检查索引是否非法
模板类array:
1. <1>要使用array对象,必须包含头文件array;<2>位于名称空间std;<3>array对象长度固定,使用栈存储;<4>相比于数组,更方便,更安全
2. array对象创建语法:array<typeName, n_elem> arr; 其中,n_elem不能是变量
3. 可以用标准数组表示法,即下标索引,来访问array对象的各个元素
4. 可以直接将一个array对象赋值给另一个array对象;数组则只能逐元素复制数据
5. 可使用成员函数at()检查索引是否非法,而数组则无此检查索引是否非法的功能,所以数组相比于vector和array是不安全的