为什么解引用字符串迭代器会产生一个const char引用?

时间:2017-12-12 03:09:44

标签: c++ iterator

我有一个非连接字符串,当解除引用它的字符串迭代器时,我发现调试信息显示它有一个const char引用类型。为什么会发生这种情况?

string str{ "Hello,world" };
for (auto it = str.begin(); it != str.end(); ++it)
{
    *it = toupper(*it);
    cout << *it;
}

使用Visual Studio 2015。

1 个答案:

答案 0 :(得分:4)

如果它产生了一个const char引用,那么代码*it = toupper(*it);将无法编译,因为你无法分配给const

可能是调试信息错误,或者您误解了调试信息。