这是我的代码:
map<string, int> errs;
struct Compare {
bool operator() (map<string, int>::const_iterator l,
map<string, int>::const_iterator r) {
return ((*l).second < (*r).second);
}
} comp;
sort(errs.begin(), errs.end(), comp);
Run Code Online (Sandbox Code Playgroud)
无法编译.这就是我得到的:
no matching function for call to ‘sort(..’
Run Code Online (Sandbox Code Playgroud)
为什么这样?有人可以帮忙吗?谢谢!
根据定义,地图按其键排序,因此您无法通过其值来求助地图.
如果要按非默认顺序对键进行排序,可以提供备用比较功能作为地图的第三个模板参数.
如果您正在尝试按其值对地图进行排序,那么您是否可以尝试使用Boost.MultiIndex来制作双向地图?
| 归档时间: |
|
| 查看次数: |
293 次 |
| 最近记录: |