vector

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vector相关的知识,希望对你有一定的参考价值。

是什么?

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

 

定义动态数组的形式:

vector<元素类型>数组对象名(数组长度);

自己指定初值(所有元素具有相同的初值):

vector<元素类型>数组对象名(数组长度,元素初值);

所有元素都会被初始化,基本数据类型以0初始化,类类型会调用类的默认构造函数初始化。所以以此形式定义的vector动态数组,需要保证作为数组元素的类具有默认构造函数。

数组对象元素访问方式:

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

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

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

vector应用

技术分享图片
 1 #include<iostream>
 2 #include<vector>
 3 using namespace std;
 4 
 5 //求数组元素平均值
 6 double average(const vector<double>&arr)
 7 {
 8     double sum = 0;
 9     for (int i = 0; i < arr.size(); i++)
10     {
11         sum += arr[i];
12     }
13     return sum / arr.size();
14 }
15 
16 int main()
17 {
18     int n;
19     cout << "请输入n:";
20     cin >> n;
21 
22     vector<double>arr(n);
23     cout << "请输入" << n << "个double类型的数:" << endl;
24     for (int i = 0; i < n; i++)
25     {
26         cin >> arr[i];
27     }
28 
29     cout << "数组平均值为:" << average(arr) << endl;
30     return 0;
31 }
View Code

 

 

以上是关于vector的主要内容,如果未能解决你的问题,请参考以下文章

以下代码片段的时间复杂度是多少?

为什么std :: foreach不能用于std :: vector ? [重复]

如何将浮点矩阵作为 2D 纹理传递给片段着色器?

Jax 矢量化:vmap 和/或 numpy.vectorize?

光照 法向量(Normal Vector)

光照 法向量(Normal Vector)