c++ vector对象

  下面随笔讲解c++ vector对象。

vector对象

  为什么需要vector

  • 封装任何类型的动态数组,自动创建和删除。

  • 数组下标越界检查。

  • 封装的如ArrayOfPoints也提供了类似功能,但只适用于一种类型的数组。

  vector对象的定义

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

  • 例:

    vector<int> arr(5)
    建立大小为5int数组

  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 }

 

posted @ 2021-02-25 15:00  `Konoha  阅读(108)  评论(0编辑  收藏  举报