我有一个包含成员A
、B
和的类C
,并且我希望将此类的对象存储在set
中,其中 ABC 三元组已知是唯一的,并且应该是设置键。但是,集合排序并没有按预期结束。
我的比较函子是:
class MyClassLess {
public:
bool operator() (const MyClass& t1, const MyClass& t2) const {
if(t1.getA() < t2.getA())
return true;
if(t1.getB() < t2.getB())
return true;
return t1.getC() < t2.getC();
}
};
typedef set<MyClass, MyClassLess> SetMyClass;
我希望集合中的元素首先按 排序A
,然后按 排序B
,最后按 排序C
。但是,如果我遍历集合 from begin
to end
,排序顺序结果是:
- 乙
- C
- 一个
换句话说,我得到了一组成员,它们都有一个特定的值B
,并且在该组中,我看到了 的所有值C
,然后对于 的每个值,C
我得到了 的所有值A
。
知道这里发生了什么吗?