例如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相关函数要使用".",而不是"->"。