我有以下比较器但是当我使用sort()
时,它会混淆long和相关集的值。
bool interestComparator(const map<long,set<long> > * i,const map<long,set<long> > *j)
{
return (i->size() > j->size());
}
如何重写它以对地图进行排序,但将每个集合移动到正确的位置(例如,如果set与long 1
相关联,我希望当我移动1
移动集合时好?
说明:
我有:
map1 with size 1 set1
map2 with size 2 set2
map3 with size 3 set3
结果是:
map3 with size 3 set1
map2 with size 2 set2
map1 with size 1 set3
但所需的结果是:
map3 with size 3 and set3
map2 with size 2 and set2
map1 with size 1 and set1
这是数组:
std::map<long, std::set<long> > *interestDatePersons[TOTAL_TAGS];
我想根据地图大小对此数组进行排序。
答案 0 :(得分:0)
我想这个:
return i->size() ? i->size() > j->size() : j->size();
或者我搞砸了你的问题。