かなり頻繁に使用する大量のデータを含む高度にフォーマットされたファイルがあるため、それを std::map に保存し、boost::serialization ライブラリでシリアル化します。シリアル化コードは次のようになります。
boost::iostreams::filtering_ostream ofs {};
ofs.push (boost::iostreams::zlib_compressor ());
ofs.push (boost::iostreams::file_sink (file_name));
boost::archive::binary_oarchive oa {ofs};
oa << my_map;
しかし、特定のキーと値のペアなど、マップの一部だけが必要になる場合があります。ファイルからマップを部分的に逆シリアル化し、指定したペアのみを取得できるかどうか疑問に思っていますか? このようにして、ファイル全体をメモリに読み込む必要はありません。