C++中std :: map的持久性
答
答案是序列化。细节取决于你的需求和你的环境。首先,检查出加速系列化库: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;
}
显然,您需要根据地图类型和文件I/O库使事情工作。