排列是非常常见的。 我们平时看到的排列一般都有一定的大小。 因此,容易犯标记越境的错误,给实际应用带来困扰。 但是,c标准库提供了一个封装的动态数组—vector。 此外,由于此封装数组可以有不同的类型,因此在调试状态下访问数组元素时可以检查下标越界的错误。
注意: vector不是类,而是类模板。
使用矢量定义动态数组的格式如下:
矢量元素型数组对象名称(数组长度);
尖括号中的类型名称表示数组元素的类型。 数组的长度是表达式,可以包含变量。
e.g.然后定义大小为10的int型动态数组对象arr。
int x=10;
向量机(x;
注意:矢量定义的数组对象的所有元素都将被初始化。
如果数组的元素类型为基本数据类型,则所有元素都初始化为0。 如果数组元素是类类型,则调用类的缺省构造函数初始化。 因此,如果要将矢量动态数组定义为类类型,则必须确保作为数组元素的类具有缺省构造函数。 另外,初始值也可以自己指定,但所有要素只能指定相同的初始值。 型号如下。
矢量元素型数组对象名称(数组长度、元素初始值);
访问矢量数组对象元素的方法与常规数组的格式相同。
阵列对象名称[下标表达式]
但是,矢量数组对象的名称表示数组对象,而不是数组的起始地址。 因为数组对象不是数组,而是封装数组的对象。
vector应用举例:
#包含iostream# #包括向量机
单一名称空间固态硬盘;
双平均(概念向量机)。
双和=0;
for (无符号I=0; iarr.size (; I ) )
求和=弧度;
返回和/数组.大小(;
}
int主() )
{
无符号n;
计数=';
cinn;
向量缓冲器(n; //创建对象数组
出口输入实际编号:结束;
for (无符号I=0; in; I ) )
cinarr;
平均='平均(arr )结束;
返回0;
}
执行结果:
n=5
前置输入5实际编号:
1.2 3.1 5.3 7.9 9.8
平均=5.46
此示例在主函数中创建动态数组arr,通过键盘输入向数组元素赋值,并调用average函数计算数组元素的平均值。