Я работаю над проблемой интервального разбиения (например: http://kartikkukreja.wordpress.com/2013/09/26/interval-partitioning-problem/), где мне приходится писать оптимальные расписания в выходной файл. В настоящее время я использую map> для хранения интервалов, назначенных нескольким разделам. Первый int обозначает номер раздела, а соответствующий ему вектор обозначает интервалы, назначенные этому разделу.Эффективная структура выходных данных в C++
Чтобы записать содержимое в файл, я повторяю все ключи карты и выписываю вектор для каждого ключа. Является ли это наиболее эффективной структурой данных для хранения данных (partition_number, interval)? или Могу ли я использовать что-то другое, кроме карты, чтобы я мог писать вывод гораздо быстрее?
Структура данных в файле не должны совпадать со структурой данных в памяти. Например, структура данных в файле данных должна быть спроектирована для удобства чтения и быстрого анализа/обработки. Файл данных также может содержать поля для обеспечения целостности. –
Как часто вы пишете файл? Как часто вы читаете? Являются ли данные большими или малыми? –
BTW, указатели на объекты в памяти не переводятся в файлы данных, так как ваша программа может не находиться в одном месте или ваша память может находиться не в одном месте от одного вызова к другому. –