<分区>
我正在使用这个 for 循环将字符串中的所有字母更改为 X。
string word{"banana"};
for (auto i : word)
i = 'x';//why does this bit fail?
cout << word;
输出应该是 xxxxxx,而不是它的“香蕉”,即使循环有效。
<分区>
我正在使用这个 for 循环将字符串中的所有字母更改为 X。
string word{"banana"};
for (auto i : word)
i = 'x';//why does this bit fail?
cout << word;
输出应该是 xxxxxx,而不是它的“香蕉”,即使循环有效。
最佳答案
你需要像这样使用 &i :
auto &i : word
i
在您的案例中存储原始元素的拷贝,因此您对其所做的任何更改都将丢失。
关于c++ - 为什么我的循环范围不会改变元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25230843/