Используйте станд.:: вектор:: зарезервируйте () метод. Это не изменит размеры вектора, но это выделит место.
Формат % d
является целым числом со знаком (десятичным). Целые числа хранятся с использованием дополнения до двух , что означает, что старший бит (8000 0000) указывает, так сказать, знак значения.
Отсчет от 3 до значений:
0000 0003 = 3
0000 0002 = 2
0000 0001 = 1
0000 0000 = 0
FFFF FFFF = -1
FFFF FFFE = -2
и т. Д.
Если вы хотите, чтобы FFFF FFFF отображался как большое положительное число, используйте формат % u
(без знака).
Аргумент «% d» печатает ввод как целое число со знаком. В результате вы обнаружили представление дополнения до двух , вместо этого рассмотрите "% u".
Значения, которые вы упомянули, представляют собой два дополнительных представления -1 и -2
Найдите два дополнения
Первый бит целого числа со знаком является знаком, поэтому наибольшее число, которое может быть сохранено, равно 0xEFFFFFFF.