我正在尝试通过执行类似于以下函数的操作来更改 vector 的值:
vector<int> Question2_Part3(vector<int> &v){
for(auto elem : v){
elem *= 2;
cout << elem << " ";
}
cout << "\n" << endl;
return v;
}
这可能吗?我知道在我的 for 循环中,改变的是 elem
的值。我能否在更改 v
中的值的同时获得相同的输出并仍然使用基于范围的 for 循环?
最佳答案
是的,这是可能的,但请使用引用
for (auto &elem : v) {
elem *= 2;
cout << elem << " ";
}
这也更有效,因为它避免了将每个 vector 元素复制到变量。事实上,如果你不想改变你应该做的元素
for (const auto &elem : v) {
cout << elem << " ";
}
关于c++ - 通过引用传递 vector 并在基于范围的 for 循环中更改其值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33508667/