c++ 将vector作为参数传入函数
1. 以引用或指针形式传入:
cpp void foo(std::vector<int> &vec); // 以引用形式传入 void bar(std::vector<int> *ptr); // 以指针形式传入
这种方式不会复制vec,函数内操作的是vec本身。可以改变vec。例如:
cpp
std::vector<int> vec = {1, 2, 3};
void increment(std::vector<int> &v) {
for (int &i : v) i++;
}
int main() {
increment(vec);
// vec is now {2, 3, 4}
}
2. 以值形式传入:
cpp void baz(std::vector<int> vec);
这种方式会复制一份vec,函数内操作的是复制品。不会改变外部的vec。例如:
cpp
std::vector<int> vec = {1, 2, 3};
void double_vec(std::vector<int> v) {
v.insert(v.end(), v.begin(), v.end());
}
int main() {
double_vec(vec);
// vec is still {1, 2, 3}
}

浙公网安备 33010602011771号