Wie bekomme ich ein Äquivalent von java.lang.Integer.MIN_VALUE auf C++?C++ Entsprechung von java.lang.Integer.MIN_VALUE
Antwort
#include <limits>
std::numeric_limits<int>::min();
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 ;-)
Obwohl in C++ 0x ist es ein konstanter Ausdruck. :) – GManNickG
Ich werde an C++ 0x glauben, wenn ich meinen Rücken rausheble ;-) –
Das ist der einfachste Weg. – Opera
@Opera: Und der richtige Weg auch. :) – jalf