用vector创建数组对象

               Vector 创建数组对象

数组是继承于C语言的一种表示群体数据的方法,具有简单,高效的优点,但无论是静态数组,还是用new动态创建的数组,都难以检测下表越界的错误,在实际应用常常造成困扰。用vector创建数组对象,它通过将动态数组封装成一个类,允许在调试状态下访问元素时检查下标越界的错误。Vector不是一个类,而是一个类模板。

用vector定义动态数组的形式为:

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

Eg:int x = 10;

    Vector<int>arr(x);

注意:

          1.与普通数组不同的是,用vector定义的数组对象的所有元素都会被初始化。

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

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

#include<iostream>

#include<vector>//必须需要头文件

using namespace std;

 

double average(constvector<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<<"please input"<<n<<"realnumbers:"<<endl;

   for(unsigned i = 0;i<n;i++)

       cin>>arr[i];

   cout<<"Average = "<<average(arr)<<endl;

   return 0;

}

//

1运行结果:

n  =6

please input6real numbers:

1 2 3 4 5 6

Average = 3.5

 

Process returned 0 (0x0)   execution time : 19.861 s

Press any key to continue.

好的,您的问题是关于创建数组的。我可以帮您解答。下面是用C++语言实现的代码: 1. 用new动态创建数组 ```c++ #include<iostream> using namespace std; int main() { int n; cout<<"请输入数组的长度:"<<endl; cin>>n; // 动态创建int类型数组 int* arr = new int[n]; cout<<"请输入数组的元素(int类型):"<<endl; for(int i=0;i<n;i++) { cin>>arr[i]; } cout<<"数组的元素(int类型)为:"<<endl; for(int i=0;i<n;i++) { cout<<arr[i]<<" "; } cout<<endl; // 动态创建Point类型数组 struct Point { int x; int y; }; Point* arr_p = new Point[n]; cout<<"请输入数组的元素(Point类型):"<<endl; for(int i=0;i<n;i++) { cin>>arr_p[i].x>>arr_p[i].y; } cout<<"数组的元素(Point类型)为:"<<endl; for(int i=0;i<n;i++) { cout<<"("<<arr_p[i].x<<","<<arr_p[i].y<<") "; } cout<<endl; // 释放内存 delete[] arr; delete[] arr_p; return 0; } ``` 2. 用vector创建数组对象 ```c++ #include<iostream> #include<vector> using namespace std; int main() { int n; cout<<"请输入数组的长度:"<<endl; cin>>n; // 创建int类型vector数组 vector<int> arr(n); cout<<"请输入数组的元素(int类型):"<<endl; for(int i=0;i<n;i++) { cin>>arr[i]; } cout<<"数组的元素(int类型)为:"<<endl; for(int i=0;i<n;i++) { cout<<arr[i]<<" "; } cout<<endl; // 创建Point类型vector数组 struct Point { int x; int y; }; vector<Point> arr_p(n); cout<<"请输入数组的元素(Point类型):"<<endl; for(int i=0;i<n;i++) { cin>>arr_p[i].x>>arr_p[i].y; } cout<<"数组的元素(Point类型)为:"<<endl; for(int i=0;i<n;i++) { cout<<"("<<arr_p[i].x<<","<<arr_p[i].y<<") "; } cout<<endl; return 0; } ``` 以上是两种创建数组的方法,希望可以帮到您。如果您还有其他问题,可以继续问我哦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值