C/C++ || 编译、链接、执行 || docker

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的值

上一篇 下一篇

猜你喜欢

热点阅读