为什么我需要取消引用迭代器?例如在下面的程序为什么我需要取消引用迭代器?
#include <iostream>
#include <string>
#include <vector>
int main()
{
using namespace std;
string s("some string");
for(auto it = s.begin(); it != s.end(); && !isspace(*it); ++it)
*it = isupper(*it);
cout<<s;
}
为什么需要使用isupper(*it);
而不只是isupper(it);
?
请注意,您引用的代码没有意义,因为您正在为循环内的字符分配布尔值。你可能想用'toupper()'来代替。 –
是的。在发布问题后几秒钟,我意识到。哈哈! – Slay
你指的是* dereferencing *,而不是引用。 –