Знаете ли вы какой-либо простой или простой способ сделать объект карты (из библиотеки STL) постоянным (т.е. записать его в файл), чтобы вы могли восстановить его состояние позже, когда программа будет запущена позже?
Спасибо за вашу помощь





Я считаю, что библиотека Повысить сериализацию способна сериализовать std :: map, но сама стандартная библиотека не предоставляет никаких средств. Сериализация - отличная библиотека с множеством функций, простая в использовании и расширяемая до ваших собственных типов.
Ответ - сериализация. Специфика зависит от ваших потребностей и вашей среды. Для начала ознакомьтесь с библиотекой Boost Serialization: http://www.boost.org/doc/libs/1_36_0/libs/serialization/doc/index.html
Если вы хотите сделать это вручную, так же, как вы сохраняете любую другую структуру контейнера, запишите отдельные части на диск:
outputFile.Write(thisMap.size());
for (map<...>::const_iterator i = thisMap.begin(); i != thisMap.end(); ++iMap)
{
outputFile.Write(i->first);
outputFile.Write(i->second);
}
а затем прочтите их снова:
size_t mapSize = inputFile.Read();
for (size_t i = 0; i < mapSize; ++i)
{
keyType key = inputFile.Read();
valueType value = inputFile.Read();
thisMap[key] = value;
}
Очевидно, вам нужно заставить все работать на основе вашего типа карты и библиотеки ввода-вывода файлов.
В противном случае попробуйте ускорить сериализацию или новая библиотека сериализации Google.