对于vector容器来说,可以通过三种方法将一个vector容器的值赋给另一个vector容器,分别是
1、通过等号直接赋值;
2、通过assign函数赋值;
3、通过for循环进行赋值;
下面将通过代码详细讲解这三种实现方法:
先假设两个vector容器:vector<int
> v1,v2;
vector<int
> :: iterator iter;
v1.push_back(10); v1.push_back(20); v1.push_back(30); v1.push_back(40);
方法一:v2=v1;
for(iter=v2.begin();iter!=v2.end();iter++){
cout<<”v2=”<<*iter<< endl; //使用了解引用操作,直接通过*iter得到v2 的值}
通过这种直接赋值的方法是可以实现将v1的值赋给v2,但是一般不提倡使用这种方法。
方法二:v2.assign(v1.begin(),v1.end());
for(iter=v2.begin();iter!=v2.end();iter++){
cout<<”v2=”<<*iter<< endl;}
方法三:v2.clear(); //清空v2容器
for(iter=v1.begin();iter!=v1.end();iter++){
v2.push_back(*iter);}
for(iter=v2.begin();iter!=v2.end();iter++){
cout<<”v2=”<<*iter<< endl;}
通过for循环也可以实现,相对于assign函数复杂一点。
###注意:vector容器并不像数组一样,可以通过下标操作进行赋值或者添加元素,vector容器是不能够通过下标操作添加元素的。
例如:
vector<int
> ivec;
for(vector<int
>:: size_type ix=0;ix!=10;ix++){
ivec[ix]=ix;//这样是并不能进行赋值添加元素的}
原因是必须是已经存在的元素才能够用下标操作符进行索引,否则,通过下标操作进行赋值,是不会添加任何元素的。