如何简化检查一对数字是(1,2)还是(2,1)?

我需要确保一对数字是 (1, 2) 或 (2, 1)。x 和 y 始终为正。我现在使用的代码:

if ((x == 2 && y == 1) ||
    (x == 1 && y == 2)) {
    return 1;
}

看起来有点笨重,感觉可以简化一下。然而,我尝试的一切都导致了误报。

回答

这是进行这种比较的最直接方式。

它也比您可能想出的任何替代方案更具可读性,因此无需更改它。


回答

这是我认为更具可读性的一种编写方法:

if (std::set{x,y} == std::set{1,2})
{
    return 1;
}

请注意,这不如您问题中的版本有效。例如,不要在将作为库发布的代码中编写此代码。但是,当性能不是问题时,在您自己的程序中编写这是完全合理的。

这是一个演示。

  • This is a horribly expensive piece of code. This answer really should be labeled “just kidding”.
  • @cigien — spoken like a true Python programmer. <g>

以上是如何简化检查一对数字是(1,2)还是(2,1)?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>