浅谈C++ vector作为参数传入函数

发布于 / C语言 / 0 条评论

例如main函数有一个vector需要使用deal函数来处理内部数据,有下面三种办法:

1、直接传入

void deal(vector<int> v){
    v.push_back(0);
}

main(){
    vector<int> vec;
    deal(vec);
}

这样做会将vec拷贝一份,传入deal。在deal函数中,对v的操作不会影响vec

2、传入指针

void deal(vector<int>* v){
    v->push_back(0);
}

main(){
    vector<int> vec;
    deal(&vec);
}

这样做会传入vec的地址,在deal中访问vector相关函数要使用"->"而不是".",对v的操作会影响vec

3、

void deal(vector<int> &v){
    v.push_back(0);
}

main(){
    vector<int> vec;
    deal(vec);
}

这个和上面第二条的效果差不多,但是特别注意在deal中访问vector相关函数要使用".",而不是"->"。

转载原创文章请注明,转载自: 斐斐のBlog » 浅谈C++ vector作为参数传入函数
目前还没有评论,快来抢沙发吧~