我应该选择HUGE_VAL还是INFINITY

Should I prefer HUGE_VAL or INFINITY?

本文关键字:还是 INFINITY VAL 选择 HUGE 我应该      更新时间:2023-10-16

我一直想知道HUGE_VAL宏常数和INFINITY宏常数之间的确切区别,这个问题也讨论过。两者在功能上似乎是等效的。

除了从逻辑上区分有限但巨大的价值和真正的无限价值之外,有什么理由更喜欢一个而不是另一个吗?

特别是,我现在的用例是关于需要找到最大值的算法,在开始时,他们将当前找到的最大值初始化为-INFINITY-HUGE_VAL可能更可取吗?如果你对其他使用情况有建议,请告诉他们。

使用C++时,应该使用标头中定义的std::numeric_limits<T>类,而不是这些宏。这里有一个例子:

double val = std::numeric_limits<double>::max();

这些类专门用于实现支持的每种数字类型,即char、int、long、float、double等。

它们给出的最大值对于查找最大值特别有用,因为它们实际上是可以由查询类型表示的较大值。