2010-04-16 14 views

risposta

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

Questo è il modo più semplice. – Opera

+3

@Opera: E anche il modo corretto. :) – jalf

3

Dipende da cosa intendi per "equivalente". java.lang.Integer.MIN_VALUE è una costante in fase di compilazione in Java, ma std::numeric_limits<int>::min() non è un'espressione di costante intera in C++. Quindi non può essere usato ad esempio come dimensione di un array (beh, il valore minimo di un int non può comunque perché è negativo, ma lo stesso vale per le espressioni che lo coinvolgono, o altri valori simili o altri contesti che richiedono un ghiaccio).

Se è necessaria una costante di compilazione in C++, utilizzare INT_MIN da <climits>. In effetti puoi anche usarlo ugualmente: numeric_limits è essenziale se stai scrivendo codice generico, e hai un numero intero di tipo T che potrebbe essere , o potrebbe essere qualcos'altro. Il suo uso principale è altrimenti quello di dimostrare il tuo leet C++ skillz e/o di rendere il tuo codice più lungo ;-)

+0

Anche se in C++ 0x è una costante-espressione. :) – GManNickG

+0

Crederò in C++ 0x quando toglierò le mie spalle sollevandolo ;-) –