【发布时间】:2012-08-04 13:42:19
【问题描述】:
我有如下地图
string word;
int occurance;
std::map< std::string, std::map<string, int> > map;
map[word]["count"] = occurance;
使用迭代器映射输出。
for(auto outer_iter=map.begin(); outer_iter!=map.end(); ++outer_iter) {
for(auto inner_iter=outer_iter->second.begin(); inner_iter!=outer_iter->second.end(); ++inner_iter) {
std::cout << outer_iter->first << '\t' << inner_iter->second << std::endl;
}
}
我想通过排序 inner_iter->second 值来显示地图。
我该怎么做?
【问题讨论】:
-
如果你写的是
std::cout,那么你也应该写std::map! -
糟糕,我使用了 using namespace std;
-
您可能对 Boost.Bimap (boost.org/doc/libs/release/libs/bimap/doc/html/index.html) 感兴趣。
-
是的,只需执行
myBimap.right即可获得反向映射,其中元素按出现次数排序。请参阅我的答案以获取示例链接。