You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅重载>运算符时,如何借助该运算符实现A < B的判断?

借助已重载的>运算符实现<运算符的推导与简化

我在对复杂数据结构做运算符重载以实现排序时,已经完成了>运算符的重载(用于判断A > B),现在需要实现<运算符的判断逻辑,但要求只能借助已重载的>运算符。我自己推导了一串等式:

A < B = !(A > B) && !(A == B)
      = !(A > B) && !((A <= B) && (B <= A))
      = !(A > B) && (!(A <= B) || !(B <= A))
      = !(A > B) && ((A > B) || (B > A))

但不知道最后一行能不能简化,求解答。


简化结论与推导

其实可以直接简化为 A < B = B > A,完全不需要复杂的逻辑组合。

从比较运算符的基本语义来看,A < B的逻辑完全等价于B > A,这是比较关系的天然对称性。你之前的推导绕了不必要的弯路,根本不需要引入==或<=这类未定义的运算符——既然已经实现了X > Y的判断逻辑,那么判断A < B直接调用B > A即可。

如果要从你最后一步的式子推导简化:
!(A > B) && ((A > B) || (B > A))
当!(A > B)成立时,(A > B)为false,因此(A > B) || (B > A)等价于B > A,整个式子就简化为!(A > B) && (B > A)。而如果你的数据结构的比较满足全序关系(任意两元素要么X>Y、要么X<Y、要么X==Y,无其他情况),那么当B > A成立时,!(A > B)必然为真,因此最终式子等价于B > A。

所以最简洁高效的实现,就是让<运算符直接返回B > A的结果。


内容的提问来源于stack exchange,提问作者Lim Meng Kiat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 08:47:16