Хранение ваших данных в файле будет значительно медленнее, чем в оперативной памяти.
Что касается самой структуры данных, если вы обычно используете все идентификаторы, то есть если ваш вектор обычно имеет пустые ячейки, то std::vector
, вероятно, является наиболее подходящим подходом. Но если в вашем векторе будет много пустых ячеек, std::map
может дать вам лучшее решение. Он потребляет меньше памяти и усложняет доступ O (logN).
Самое важное здесь, imho, это размер вашего набора данных и вашей платформы. Для современного ПК обработка карты в памяти тысяч записей выполняется очень быстро, но если вы обрабатываете гигабайты данных, вам лучше хранить их в реальной базе данных на диске (например, MySQL).