KOB*_*KOB 3 c++ for-loop reference
我试图通过执行类似于以下函数的操作来更改向量的值:
vector<int> Question2_Part3(vector<int> &v){
for(auto elem : v){
elem *= 2;
cout << elem << " ";
}
cout << "\n" << endl;
return v;
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?我知道在我的for循环中,它的价值elem
正在发生变化.我是否可以在更改值时v
使用相同的输出并仍然使用基于范围的for循环?
是的,但可以使用参考
for (auto &elem : v) {
elem *= 2;
cout << elem << " ";
}
Run Code Online (Sandbox Code Playgroud)
这也更有效,因为它避免了将每个向量元素复制到变量.实际上,如果你不想改变你应该做的元素
for (const auto &elem : v) {
cout << elem << " ";
}
Run Code Online (Sandbox Code Playgroud)