C++ 用vector创建数组对象

C++标准库提供了被封装的动态数组——vector,而且这种被封装的数组可以具有各种类型,这就使我们免去了一些重复性工作。

vector不是一类,而是一个类模板。

1. vector定义动态数组的形式为
vector<元素类型>数组对象名(数组长度);

尖括号中的类型名表示数组元素的类型。数组长度是一个表达式,表达式中可以包含变量。例如,下面定义了一个大小为10的int型动态数组对象arr:

int x=10;
vector<int>arr(x);
2. vector动态数组初始化

与普通数组不同的是,用vector定义的数组对象的所有元素都会被初始化。如果数组的元素类型为基本数据类型,则所有元素都会被以0初始化;如果数组元素为类类型,则会调用默认的构造函数初始化。因此如果以此形式定义的vector动态数组,需要保证作为数组元素的类具有默认构造函数。另外,初值也可以自己指定,但只能为所有元素指定相同的初值,形式为:

vector<元素类型>数组对象名(数组长度,元素初值);
3. vector数组对象元素的访问方式

对vector数组对象元素的访问方式与普通数组具有相同的形式:

数组对象名[下标表达式];

但是vector数组对象的名字表示的就是一个数组对象,而非数组的首地址,因为数组对象不是数组,而是封装了的数组对象。

vector定义的数组对象具有一个重要的成员函数size(),它会返回数组的大小。

【例】vector应用举例

#include
#include
using namespace std;

//计算arr数组中元素的平均值
double avg(const vector<double>& 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;

	vector<double>arr(n);//创建数组对象

	cout << "请输入" << n << "个数:" << endl;
	for (unsigned i = 0; i < n; i++)
	{
		cin >> arr[i];
	}
	cout << "这" << n << "个数的平均值为:" << avg(arr)<<endl;

	return 0;
}

运行结果:
C++ 用vector创建数组对象_第1张图片
本例中,在主函数里创建了动态数组对象arr,然后通过键盘输入的方式为数组元素赋值,在调用avg函数计算数组元素的平均值。

你可能感兴趣的:(C++,c++,java,前端)