Это действительно зависит от набора данных, о котором идет речь.Я думаю, что для вас важно обсудить альтернативы и описать различные плюсы и минусы.
Возможно, вам следует ответить на их вопрос большим количеством вопросов!
- Как это должно бытьдоступ?(последовательно, случайно, какое-то предсказуемое распределение?)
- Важен ли порядок элементов?
- Изменится ли размер элементов?
- Насколько важна производительность вставки / удаления?
Структура данных, которую вы выберете, будет зависеть от того, какие компромиссы вы готовы совершить.
Например, если вам когда-либо потребуется только последовательно выполнять наборы,возможно, вам следует использовать связанный список, так как он имеет относительно небольшие накладные расходы на хранение.
Если вместо этого вам нужен произвольный доступ, вы можете посмотреть:
- Хеш-таблицы(поиск в постоянном времени, но нужна хорошая хеш-функция для данных)
- Какая-то структура индекса / дерева?
- Кэширование!Вы, вероятно, не сможете хранить все это в памяти - и даже если вы захотите, вы захотите воспользоваться преимуществами локальности данных, где это возможно.
TL; DR: Это все зависит от проблемы.Есть много альтернатив.
По сути, это та же проблема, с которой сталкиваются файловые системы / базы данных.