12

如何在 C++ 上获得等效的 java.lang.Integer.MIN_VALUE?

4

2 回答 2

19
#include <limits>    
std::numeric_limits<int>::min();
于 2010-04-16T16:54:09.143 回答
3

取决于您所说的“等效”是什么意思。java.lang.Integer.MIN_VALUE在 Java 中是编译时常量,但std::numeric_limits<int>::min()在 C++ 中不是整数常量表达式。因此它不能用作例如数组大小(嗯,int 的最小值无论如何都不能,因为它是负数,但涉及它的表达式或其他类似值或其他需要冰的上下文也是如此)。

如果您需要 C++ 中的编译时常量,请使用INT_MINfrom <climits>。事实上,无论如何你都可以使用它:numeric_limits如果你正在编写通用代码,这是必不可少的,并且你有一些整数类型 T 可能是int,或者可能是其他东西。它的主要用途是证明您的 leet C++ Skillz,和/或使您的代码更长;-)

于 2010-04-16T23:26:58.160 回答