C++中对集的自定义设置比较器



我有两个集合,Set1,Set2。两者都是一组对(pair <int,int>)。

现在对于 Set1,我想要像

set1Comparator(pair p1, pair p2)
{
      if(p1.first != p2.first)
              return p1.first < p2.first;
      else
              return p1.second < p2.second;
}

对于 Set2,我想要像这样的比较器

 set2Comparator(pair p1, pair p2)
{
      if(p1.first != p2.first)
              return p1.first > p2.first;
      else
              return p1.second > p2.second;
}

请帮忙。仅供参考,我在 c++ 集合比较器上检查了很多链接,但没有一个可以帮助我为特定集合定义集合比较器。(意味着如果我为一组对定义一个比较器,那么 set1 和 set2 将使用相同的比较器,其中 set1 和 set2 是一组对)。

每当你声明一个std::set时,你可以指定比较类,比如

std::set< std::pair<foo,bar>, set1Comparator > myset1;

然后对于另一组:

std::set< std::pair<foo,bar>, set2Comparator > myset2;

就这么简单:D

最新更新