我应该更喜欢HUGE_VAL还是INFINITY?

时间:2014-09-16 11:06:58

标签: c++ infinity

我一直想知道HUGE_VAL宏常量和INFINITY宏常量之间的确切差异,这也在this question中讨论过。看起来这两者在功能上是等价的。

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

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

1 个答案:

答案 0 :(得分:3)

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

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

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

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