C ++ boost :: multi_array index слишком большой - PullRequest
0 голосов
/ 07 июня 2018

Я использую двумерный boost :: multi_array для хранения объектов пользовательской структуры.Проблема в том, что у меня есть огромное количество этих объектов, так что индекс массива, который мне нужен, превышает диапазон целого числа.Есть ли возможность использовать long как индекс для нескольких массивов, или у вас есть какие-либо другие предложения о том, как хранить такой большой набор данных и при этом сохранять его доступным с приличной скоростью?

Спасибо!

1 Ответ

0 голосов
/ 07 июня 2018

Официальная документация гласит, что тип индекса не указан , но, глядя в репозиторий , можно увидеть, что определение, скорее всего, typedef std::ptrdiff_t index;

Так что, если вы скомпилируете для 32-битной системы x86, вам все равно не хватит адресуемой памяти, поэтому ограниченный размер индикаторов не является вашей реальной проблемой.Единственный вариант - выбрать систему с достаточным объемом памяти, которая должна иметь размер более 2 ^ 32 байт и, следовательно, должна быть 64-битной.2 ^ 64, безусловно, будет достаточно для представления размеров вашего мультинабора.

...