С++ эквивалент java.lang.Integer.MIN_VALUE

Как я могу получить эквивалент java.lang.Integer.MIN_VALUE на С++?

Ответ 1

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

Ответ 2

Зависит от того, что вы подразумеваете под "эквивалентом". java.lang.Integer.MIN_VALUE - константа времени компиляции в Java, но std::numeric_limits<int>::min() не является целым константным выражением в С++. Поэтому он не может использоваться, например, как размер массива (ну, минимальное значение int не может, так как оно отрицательно, но то же самое относится к выражениям, связанным с ним, или к другим подобным значениям или к другим контекстам, требующим льда).

Если вам нужна константа времени компиляции в С++, используйте INT_MIN из <climits>. Фактически вы также можете использовать его в любом случае: numeric_limits имеет важное значение, если вы пишете общий код, и у вас есть целочисленный тип T, который может быть int, или может быть чем-то другим. Его основное использование в противном случае заключается в том, чтобы доказать ваш leet С++ skillz и/или сделать ваш код более длинным; -)