【发布时间】:2013-10-18 20:56:26
【问题描述】:
我还在学习 C++,但我想出了一个很难理解的表达方式。
基本上它将 cin 输入到 istringstream,然后对其进行处理以保留单个单词,并在地图容器“单词”中计数(出现的次数)
代码
std::map<string, int> words;
std::istream_iterator<string> begin(cin);
std::istream_iterator<string> end;
while(begin != end )
words[*begin++]++;
如果有人可以为我解释一下 while 循环的代码?我知道最终结果,只是想知道它是如何做到的。谢谢!
【问题讨论】:
-
如果您不知道
istream_iterator是什么(并且为您所做),或者不知道std::map<>的operator []的默认插入是如何发生的,说明单个表达式可能需要一会儿。请参阅 this foristream_iterator和 this forstd::map::operator []。如果不是很明显,那条小线中有大量功能。
标签: c++