Ну, вы можете сделать это вручную. Если нет, то самым простым способом было бы использовать boost.serialization
, который поставляется с поддержкой всех стандартных контейнеров:
std::ofstream ofs("output_file");
// create class instance
std::map<int,string> whatever;
// populate map.
// save data to archive
{
boost::archive::text_oarchive oa(ofs);
// write map instance to archive
oa << whatever;
// archive and stream closed when destructors are called
}
Вы можете увидеть, как работает обратное (чтение из архива), а также что вы можете использовать также двоичные архивы. (Вам также понадобится куча включений, но вы можете получить их из документации.)