2010-04-16 430 views

回答

19
#include <limits>  
std::numeric_limits<int>::min(); 
+0

這是最簡單的方法。 – Opera 2010-04-16 16:57:55

+3

@Opera:也是正確的方法。 :) – jalf 2010-04-16 17:21:44

3

取決於「等價」的意思。 java.lang.Integer.MIN_VALUE是Java中的編譯時常量,但std::numeric_limits<int>::min()不是C++中的整數常量表達式。因此它不能用作數組大小(嗯,int的最小值無論如何因爲它是負數,但是對於涉及它的表達式或其他類似的值或需要冰塊的其他上下文也是如此)。

如果在C++中需要編譯時常量,請使用<climits>中的INT_MIN。實際上你可以使用它:numeric_limits是必不可少的,如果你正在編寫泛型代碼,並且你有一些整數類型T可能是int,或者可能是別的東西。否則它的主要用途是證明你的leet C++ skillz,和/或讓你的代碼更長;-)

+0

雖然在C++ 0x它是一個常量表達式。 :) – GManNickG 2010-04-17 00:43:17

+0

當我放棄解除它時,我會相信C++ 0x ;-) – 2010-04-17 00:55:13