Si desea hacerlo de forma manual, la misma forma en que persiste cualquier otra estructura del contenedor, escribir las partes individuales en el disco:
outputFile.Write(thisMap.size());
for (map<...>::const_iterator i = thisMap.begin(); i != thisMap.end(); ++iMap)
{
outputFile.Write(i->first);
outputFile.Write(i->second);
}
y a continuación, lea de nuevo en:
size_t mapSize = inputFile.Read();
for (size_t i = 0; i < mapSize; ++i)
{
keyType key = inputFile.Read();
valueType value = inputFile.Read();
thisMap[key] = value;
}
Obviamente, usted necesita para hacer las cosas de trabajo basados en el tipo de mapa y archivo de e/S de la biblioteca.
De lo contrario, pruebe boost serialization, o google's new serialization library.