[英]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; }
有没有其他更有效和更聪明的方法?
标准头文件<algorithm>
提供了标准函数std::max
。 此函数的重载之一比较两个对象并返回对两个对象中最大的一个的引用。 在您的情况下,表达式将是:
auto greatest = std::max(x, y)
如果有一种“最有效”的方法来获得两者中最大的一个,那么您应该依靠底层实现来为您使用它。 std::max
应该实现最好的方法。 但即使您使用的不是弱标准库实现,编译器仍应捕获它并对其进行优化。
请记住,在 C++ 中,您的代码描述了一种行为。 它不是编译器将逐字执行的指令列表。 您的代码将由编译器转换,以在已知存在的地方为您实现这些微优化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.