2
我有一个QList<MyPoint*> l
其中MyPoint
是用户defiend类的类型,我想要做的:如何为QList指针编写自定义比较器?
QList<MyPoint*> l;
MyPoint *a = new MyPoint(2, 4);
MyPoint *b = new MyPoint(4, 8);
MyPoint *c = new MyPoint(2, 4);
l << a << b;
则:
l.contains(c); //true
我尝试过载==
运营商为doc
说:
此函数要求值类型具有 operator ==()的实现。
试过不同的方法,但似乎没有按预期工作。
这里是到目前为止,我已经试过代码:
class MyPoint
{
public:
int x, y;
MyPoint(int x, int y)
: x(x),
y(y)
{
}
bool operator == (const MyPoint &other) const
{
return other.x == this->x && other.y == this->y;
}
bool operator == (const MyPoint *other) const
{
return true;
}
};
bool operator == (const MyPoint &a, const MyPoint &b)
{
return a.x == b.x && a.y == b.y;
}
我想是这样的:
bool operator == (const MyPoint *a, const MyPoint *b)
{
return a.x == b.x && a.y == b.y;
}
但我读这是不可能的......我知道(*a == *c)
为真但我想这会影响行为,以便使用我自己的比较器进行比较。