c++ vector对象
下面随笔讲解c++ vector对象。
vector对象
为什么需要vector?
-
封装任何类型的动态数组,自动创建和删除。
-
数组下标越界检查。
-
封装的如ArrayOfPoints也提供了类似功能,但只适用于一种类型的数组。
vector对象的定义
-
vector<元素类型> 数组对象名(数组长度);
-
例:
vector<int> arr(5)
建立大小为5的int数组
vector对象的使用
-
对数组元素的引用
-
与普通数组具有相同形式:
-
vector对象名 [ 下标表达式 ]
-
vector数组对象名不表示数组首地址
-
获得数组长度
-
用size函数
-
数组对象名.size()
1 //例 vector应用举例 2 3 #include <iostream> 4 5 #include <vector> 6 7 using namespace std; 8 9 //计算数组arr中元素的平均值 10 11 double average(const vector<double> &arr) 12 13 { 14 15 double sum = 0; 16 17 for (unsigned i = 0; i<arr.size(); i++) 18 19 sum += arr[i]; 20 21 return sum / arr.size(); 22 23 } 24 25 int main() { 26 27 unsigned n; 28 29 cout << "n = "; 30 31 cin >> n; 32 33 vector<double> arr(n); //创建数组对象 34 35 cout << "Please input " << n << " real numbers:" << endl; 36 37 for (unsigned i = 0; i < n; i++) 38 39 cin >> arr[i]; 40 41 cout << "Average = " << average(arr) << endl; 42 43 return 0; 44 45 }
1 //基于范围的for循环配合auto举例 2 3 #include <vector> 4 5 #include <iostream> 6 7 int main() 8 9 { 10 11 std::vector<int> v = {1,2,3}; 12 13 for(auto i = v.begin(); i != v.end(); ++i) 14 15 std::cout << *i << std::endl; 16 17 for(auto e : v) 18 19 std::cout << e << std::endl; 20 21 }
天空飘来五个字,那都不是事