Размер вектора больше, чем 2147483647 в C ++? - PullRequest
0 голосов
/ 09 мая 2019
std::vector<int> large(2147483648, 0);

имеет ошибку. Тем не менее, я знаю, что в C ++ нет ограничений по размеру вектора.

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Максимальный размер вектора составляет 64-разрядное целое число без знака, что на практике не ограничено. Но вы используете 32-битные целочисленные литералы. Попробуйте добавить суффикс 'ull' после цифр, чтобы получить 64-битный литерал.

std::vector<int> large(50000000000ull, 0);
0 голосов
/ 09 мая 2019

Спасибо за все добрые ответы. Я знаю, что есть ограничение на размер вектора. Если я выберу x86 в качестве среды компиляции в VS2015, я получу max_size вектора 1073741823, что меньше, чем выбор X64 в качестве среды. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...