C++中与java.lang.Integer.MIN_VALUE相等的值

12

如何在C++中获取与java.lang.Integer.MIN_VALUE等同的值?

2个回答

20
#include <limits>    
std::numeric_limits<int>::min();

3
取决于您对“等价”的理解。在Java中,java.lang.Integer.MIN_VALUE是一个编译时常量,但在C++中,std::numeric_limits<int>::min()不是整数常量表达式。因此,例如不能将其用作数组大小(好吧,int的最小值无论如何都不能,因为它是负数,但对于涉及它或其他类似值的表达式或其他需要i.c.e的上下文也是如此)。
如果您需要C++中的编译时常量,请使用<climits>中的INT_MIN。实际上,无论如何您都可以使用它:numeric_limits对于编写通用代码并具有某些整数类型T(可能是int,也可能是其他类型)至关重要。否则,它的主要用途是证明您的精湛C++技能和/或使您的代码更长;-)

虽然在C++0x中它是一个常量表达式。 :) - GManNickG
当我因为举起它而伤到背时,我才会相信C++0x ;-) - Steve Jessop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接