带指针的比较器

时间:2014-04-01 21:11:44

标签: c++ sorting pointers

我有以下比较器但是当我使用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];

我想根据地图大小对此数组进行排序。

1 个答案:

答案 0 :(得分:0)

我想这个:

return i->size() ? i->size() > j->size() : j->size();

或者我搞砸了你的问题。