标签:
当我们使用set集合时,当set集合是由两个简单变量组成时,我们可以自己定义结构体,自己定义重载小于号,就像如下所示:
但是这样需要自己定义结构体,有时在结构中需要定义构造函数,如果只有两个变量,我们可以通过pair类型来实现,这样显得简洁。
struct RatioComp {
bool operator() (const pair<int, int>& A, const pair<int, int>& B) {
if (A.first * B.second < A.second * B.first) {
return true;
} else if (A.first * B.second == A.second * B.first) {
return A.first < B.first;
} else {
return false;
}
}
};
set<pair<int,int>,RatioComp>S;
//RatioComp结构体中定义的构造函数就是set集合排序规则。
标签:
原文地址:http://www.cnblogs.com/ChenAlong/p/4651835.html