我有一个包含成员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 beginto end,排序顺序结果是:
- 乙
- C
- 一个
换句话说,我得到了一组成员,它们都有一个特定的值B,并且在该组中,我看到了 的所有值C,然后对于 的每个值,C我得到了 的所有值A。
知道这里发生了什么吗?