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

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

本文关键字:有效 是什么 方法 整数 C++ 两个 比较      更新时间:2023-10-16

两个变量

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++ 中,您的代码描述了一种行为。它不是编译器将逐字执行的指令列表。编译器将转换您的代码,以便在已知存在这些微优化的地方为您实现这些微优化。