考虑以下代码片段:
map<wstring,int>::iterator it;
map<wstring,int> bimap;
//Creating Bigrams out of monograms
for (it= container.begin(); it != container.end();)
{
bimap[it->first + L" "+((++it)->first)]++;
++it;
++it;
}
如果我运行此代码,程序会崩溃,崩溃的原因是 iterator 的第二个增量it
。为什么会这样?迭代器需要递增,我将它递增两次而不是一次!它出什么问题了?
如果我想将两个相邻的地图项值保存到其他地图中,就像我在上面的 for 语句中所做的那样,我应该怎么做?如果我想将每 3 个其他项目组合并存储在一起怎么办?
我需要分别更新迭代器才能继续,但我不知道该怎么做。