如何打印嵌套映射的内容?我正在统计文件中单词出现的次数,按行号和每行出现次数报告。单词、行号和每行的出现次数存储在以下容器中:
map<string, map<int, int>> tokens;
然而,我对语法不确定。使用以下代码打印列出所有单词的外部映射,但无法弄清如何同时打印内部值(每行出现次数和编号)。我认为可以在for
循环中内联包含它,但是我无法弄清楚如何操作:
for (map <string, map<int, int>>::iterator it = tokens.begin(); it != tokens.end(); ++it){
cout << it->first << " : " << /* assume I can include another statement here to print the values? */ endl;
}
我正在尝试获得类似于以下输出的结果:
(word: 行号:出现次数, 行号:出现次数, ...)
about : 16:1, 29:1, 166:1, 190:1, 191:1
above : 137:1
accompanied : 6:1
across : 26:1
admit : 20:1
advancing : 170:1
.
.
.
map<int, int> const &the_map = it->second;
,然后像处理tokens
一样迭代the_map
。 - M.Mconst_iterator
而不是iterator
。 - M.Mt->second
应该改为it->second
。 - M.M