C++ vector拷贝与引用
2019-02-15 本文已影响17人
dopami
vector的拷贝与引用与普通的变量相似,实例如下:
//拷贝
vector<int> adder_cp(vector<int> vec)
{
for(int i = 0; i<vec.size();i++)
vec[i] += i;
return vec;
}
//引用
void adder_in(vector<int> &vec)
{
for(int i = 0; i<vec.size();i++)
vec[i] += i;
}
void display(vector<int> &vec)
{
for(int i = 0; i<vec.size();i++)
cout<<vec[i]<<" ";
cout<<endl;
}
int main()
{
vector<int> vec(5,1);
display(vec);
vector<int> temp = adder_cp(vec);
display(vec);
display(temp);
adder_in(&vec);
display(vec);
return 0;
}
最终输出结果如下:
1 1 1 1 1
1 1 1 1 1
1 2 3 4 5
1 2 3 4 5
分析:
vector<int> temp = adder_cp(vec);//这里传入的是vec的一个拷贝,操作拷贝不影响vec
adder_in(&vec);//这里传入的是vec地址,函数中的操作改变vec的值