我是Userdefined Comparison Operator的新手。我正在读一本书,其中提到了以下例子:
struct P {
int x, y;
bool operator<(const P &p) {
if (x != p.x)
return x < p.x;
else
return y < p.y; }
};
我想了解bool operator<(const P &p)
。
特别是我理解bool
是运算符的返回类型,即返回值为true
或false
。
但我很困惑,operator<
中&lt; 的意义是什么?这个运算符实际上是如何工作的?正在比较什么价值?
答案 0 :(得分:1)
P a, b;
bool ret = a < b;
实际上是:
P a, b;
bool ret = a.operator<(b); // And < in operator<: x.operator<(p.x)
这有助于您更好地理解吗?
答案 1 :(得分:0)
所以你有一个包含两个整数的结构。 X和Y.上面的代码说的是你所在的结构中的X(也称为&#34; this&#34;)不等于传递给(p)的结构中的x在x和p的x之间做一个常规的比较。如果它们相等,则将其与y的比较y。
&#34;&lt;&#34;在&#34;运营商&lt;&#34;是让编译器知道你重载'&#34;&lt;&#34;运算符允许您使用它来比较P型结构。如果你不重载&lt;结构。自定义类型的运算符,您不能使用它来比较其中两个对象。