c++ - 为什么我的循环范围不会改变元素?

标签 c++ for-loop

<分区>

我正在使用这个 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/

相关文章:

c# - 向外部调用程序 C++ 返回一个值

c++ - 链中的最后一个任务应该返回什么 - C++ Rest sdk?

c++ - 如何组织 python/Boost Python 项目

c++ - Qt中有没有办法禁止计算机进入休眠状态?

for-loop - sass if for循环中的偶数

c++ - 为什么 CoCreateInstance 在某些 Windows 上返回 REGDB_E_CLASSNOTREG?

javascript - for 循环的当前迭代返回 undefined 并且函数的返回是 undefined

python - for循环内的 sleep 问题

oracle - 使用 Oracle PL/SQL For 循环遍历逗号分隔的字符串

java - 表达式的非法开始 - for 循环