2010-04-16 12 views

Antwort

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

Das ist der einfachste Weg. – Opera

+3

@Opera: Und der richtige Weg auch. :) – jalf

3

Hängt davon ab, was Sie mit "gleichwertig" meinen. java.lang.Integer.MIN_VALUE ist eine Kompilierzeitkonstante in Java, aber std::numeric_limits<int>::min() ist kein Integer-Konstantenausdruck in C++. So kann es zB nicht als Array-Größe verwendet werden (naja, der min-Wert eines int kann sowieso nicht, weil er negativ ist, aber das gleiche gilt für Ausdrücke, die ihn betreffen, oder andere ähnliche Werte oder andere Kontexte, die ein Eis erfordern).

Wenn Sie eine Konstante für die Kompilierung in C++ benötigen, verwenden Sie INT_MIN von <climits>. In der Tat können Sie es auch verwenden: numeric_limits ist wichtig, wenn Sie generischen Code schreiben, und Sie haben einige Integer-Typ T, die int sein können, oder möglicherweise etwas anderes. Sein Hauptzweck ist sonst, dein Leet C++ Skillz zu beweisen und/oder deinen Code länger zu machen ;-)

+0

Obwohl in C++ 0x ist es ein konstanter Ausdruck. :) – GManNickG

+0

Ich werde an C++ 0x glauben, wenn ich meinen Rücken rausheble ;-) –

Verwandte Themen