我需要确保一对数字是 (1, 2) 或 (2, 1)。x 和 y 始终为正。我现在使用的代码:
if ((x == 2 && y == 1) ||
(x == 1 && y == 2)) {
return 1;
}
Run Code Online (Sandbox Code Playgroud)
看起来有点笨重,感觉可以简化一下。然而,我尝试的一切都导致了误报。
这是我认为更具可读性的一种编写方法:
if (std::set{x,y} == std::set{1,2})
{
return 1;
}
Run Code Online (Sandbox Code Playgroud)
请注意,这不如您问题中的版本有效。例如,不要在将作为库发布的代码中编写此代码。但是,当性能不是问题时,在您自己的程序中编写这是完全合理的。
这是一个演示。