问题描述
考虑类似字符串s =“ xyz123”的字符串。
for(char ch : s)
cout<<ch;
和stringstream之类的
char ch;
stringstream ss(s);
while(ss>>ch)
cout<<ch;
它们都提供相同的解决方案。在任何情况下两者的行为都不同吗? 何时应使用它们。
解决方法
第二个将跳过字符串中的任何空格。 >>
就是这样。
除非实际上需要跳过空格,否则也不需要第二个版本。当在字符串中内置有用于迭代的方法时,为什么要构造一个仅用于迭代字符串的新对象。