在 C++ 中比较两个整数的最有效和最干净的方法是什么?

What is the most efficient and the clean way to compare two integers in C++?

两个变量

int x, y;

将进行比较,其中较大的将分配给另一个变量,

int greatest;

首先想到的是

if (x > y) { greatest = x; }
else { greatest = y; }

有没有其他更高效和聪明的方法?

标准header<algorithm> provides the standard function std::max。此函数的重载之一比较两个 objects 和 returns 对两者中最大者的引用。在您的情况下,表达式将是:

auto greatest = std::max(x, y)

如果有一个"most efficient"的方法来获得两个你中最大的,你应该依赖底层实现来为你使用它。 std::max 应该实施最好的方法。但即使您使用的是弱标准库实现,编译器仍应捕获并优化它。

请记住,在 C++ 中,您的代码描述了一种行为。它不是编译器将逐字执行的指令列表。编译器将转换您的代码,以在已知存在的地方为您实施这些微优化。