【发布时间】:2010-04-16 16:52:56
【问题描述】:
如何在 C++ 上获得等效的 java.lang.Integer.MIN_VALUE?
【问题讨论】:
如何在 C++ 上获得等效的 java.lang.Integer.MIN_VALUE?
【问题讨论】:
#include <limits>
std::numeric_limits<int>::min();
【讨论】:
取决于您所说的“等效”是什么意思。 java.lang.Integer.MIN_VALUE 是 Java 中的编译时常量,但 std::numeric_limits<int>::min() 不是 C++ 中的整数常量表达式。因此它不能用作例如数组大小(好吧,int 的最小值无论如何都不能,因为它是负数,但对于涉及它的表达式,或其他类似值,或其他需要 i.c.e 的上下文也是如此)。
如果您需要 C++ 中的编译时常量,请使用来自 <climits> 的 INT_MIN。事实上,无论如何你都可以使用它:numeric_limits 是必不可少的,如果你正在编写通用代码,并且你有一些整数类型 T,它可能是 int,或者可能是其他东西。它的主要用途是证明你的 leet C++ Skillz,和/或使你的代码更长;-)
【讨论】: