建设大学网站费用,网站建设详细过程,如何建平台网站,自己做的网页怎么发布C标准库提供了被封装的动态数组——vector#xff0c;而且这种被封装的数组可以具有各种类型#xff0c;这就使我们免去了一些重复性工作。
vector不是一类#xff0c;而是一个类模板。
1. vector定义动态数组的形式为
vector元素类型数组对象名(数组长度);尖括号…C标准库提供了被封装的动态数组——vector而且这种被封装的数组可以具有各种类型这就使我们免去了一些重复性工作。
vector不是一类而是一个类模板。
1. vector定义动态数组的形式为
vector元素类型数组对象名(数组长度);尖括号中的类型名表示数组元素的类型。数组长度是一个表达式表达式中可以包含变量。例如下面定义了一个大小为10的int型动态数组对象arr
int x10;
vectorintarr(x);2. vector动态数组初始化
与普通数组不同的是用vector定义的数组对象的所有元素都会被初始化。如果数组的元素类型为基本数据类型则所有元素都会被以0初始化如果数组元素为类类型则会调用默认的构造函数初始化。因此如果以此形式定义的vector动态数组需要保证作为数组元素的类具有默认构造函数。另外初值也可以自己指定但只能为所有元素指定相同的初值形式为
vector元素类型数组对象名(数组长度,元素初值);3. vector数组对象元素的访问方式
对vector数组对象元素的访问方式与普通数组具有相同的形式
数组对象名[下标表达式];但是vector数组对象的名字表示的就是一个数组对象而非数组的首地址因为数组对象不是数组而是封装了的数组对象。
vector定义的数组对象具有一个重要的成员函数size()它会返回数组的大小。
【例】vector应用举例
#includeiostream
#includevector
using namespace std;//计算arr数组中元素的平均值
double avg(const vectordouble arr)
{double sum 0;for (unsigned i 0; i arr.size(); i){sum arr[i];}return sum / arr.size();
}int main()
{unsigned n;cout n;cin n;vectordoublearr(n);//创建数组对象cout 请输入 n 个数 endl;for (unsigned i 0; i n; i){cin arr[i];}cout 这 n 个数的平均值为 avg(arr)endl;return 0;
}
运行结果 本例中在主函数里创建了动态数组对象arr然后通过键盘输入的方式为数组元素赋值在调用avg函数计算数组元素的平均值。