数组是继承于C语言的一种表示群体数据的方法,具有简单,高效的优点,但无论是静态数组,还是用new动态创建的数组,都难以检测下表越界的错误,在实际应用常常造成困扰。用vector创建数组对象,它通过将动态数组封装成一个类,允许在调试状态下访问元素时检查下标越界的错误。Vector不是一个类,而是一个类模板。
用vector定义动态数组的形式为:
Vector<元素类型>数组对象名(数组长度,元素初值);
Eg:int x = 10;
Vector<int>arr(x);
注意:
1.与普通数组不同的是,用vector定义的数组对象的所有元素都会被初始化。
2.但是vector数组对象的名字表示的就是一个数组对象,而非数组的首地址,因为数组对象不是数组,而是封 装起来的对象。
3.vector定义的数组对象具有一个重要的成员函数size(),它会返回数组的大小。
#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
int fun(vector<int>arr)
{
int sum=0;
for(int i=0;i<arr.size();i++)
sum+=arr[i];
return sum;
}
int main()
{
int x=3;
vector<int>arr(x);
for(int i=0;i<3;i++)
cin>>arr[i];
for(int i=0;i<3;i++)
cout<<arr[i]<<endl;;
cout<<arr.size()<<endl;
cout<<fun(arr)<<endl;
return 0;
}
#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
int main()
{
//四种初始化
vector<int>arr;
for(int i=0;i<10;i++)
arr.push_back(1);
vector<int>arr1(10,1);
vector<int>arr2={1,1,1,1,1,1,1,1,1,1};
vector<int>arr3{1,1,1,1,1,1,1,1,1,1};
return 0;
}