我有两套,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 ++设置比较器上检查了很多链接,但是没有一个可以帮我定义特定设置的set-comparator。(意味着如果我为一组对定义一个比较器,那么set1和set2将使用相同的比较器,其中set1和set2是成对的集合。
答案 0 :(得分:1)
每当你声明一个std :: set时,你都可以指定比较类,比如
std::set< std::pair<foo,bar>, set1Comparator > myset1;
然后换另一组:
std::set< std::pair<foo,bar>, set2Comparator > myset2;
就这么简单:D