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} }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步