比较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; }
有没有其他方法更有效和更聪明?
标准标头<algorithm>
提供标准函数std::max
。此函数的重载之一比较两个对象,并返回对两个对象中最大的对象的引用。在您的情况下,表达式将是:
auto greatest = std::max(x, y)
如果有"最有效"的方法可以获得两个你中最大的一个,你应该依靠底层实现来为你使用它。std::max
应该实施最好的方法。但是,即使您使用的是没有的弱标准库实现,编译器仍应捕获并对其进行优化。
请记住,在 c++ 中,您的代码描述了一种行为。它不是编译器将逐字执行的指令列表。编译器将转换您的代码,以便在已知存在这些微优化的地方为您实现这些微优化。
相关文章:
- 将此布尔值传递给此函数的最有效方法是什么?
- 比较C++中两个整数的最有效和最干净的方法是什么?
- 在 c++ 中解决段树以外的范围查询的有效方法是什么?
- 存储变量的更有效方法是什么?
- 这是什么代码?为什么它有效?C++
- 找到对称矩阵的最大元素的最有效算法是什么
- 传递非泛型函数的最有效方法是什么?
- 按升序打印矢量的所有元素直到它为空而没有重复项的最有效方法是什么?
- 将一种数据类型的向量复制到同一数据类型的结构向量中的有效方法是什么
- 是什么使这个以'+'开头的字符串添加成为有效的语句?
- 释放 std::vector 中指针内存的最有效方法是什么?
- 从长(且合理)稀疏向量中选择随机元素的最有效方法是什么?
- 有效创建数字签名的正确方法是什么?我可以使用DSA_sign_setup()吗?
- 填充红黑树的最有效方法是什么?
- 释放分配给大量矢量的内存的最有效方法是什么?
- 在使用 0MQ 异步接收时异步发送数据的最有效方法是什么?
- 在 c++ 中使用右值设置类变量的最有效方法是什么
- 检查字符串是否与可能的输入之一匹配的最有效方法是什么?
- 将随机数放入缓冲区以写入文件的有效方法是什么?
- 从向量中提取最小值、最大值和中位数的最有效方法是什么