我有一个非连接字符串,当解除引用它的字符串迭代器时,我发现调试信息显示它有一个const char引用类型。为什么会发生这种情况?
string str{ "Hello,world" };
for (auto it = str.begin(); it != str.end(); ++it)
{
*it = toupper(*it);
cout << *it;
}
使用Visual Studio 2015。
答案 0 :(得分:4)
如果它产生了一个const char引用,那么代码*it = toupper(*it);
将无法编译,因为你无法分配给const
。
可能是调试信息错误,或者您误解了调试信息。