如何使用boost :: unordered_map之类的boost std :: vector进行序列化/反序列化
vector<boost::unordered_map<uint64_t, Person* > *> town;
代表城镇。所有指针都是使用new创建的堆上的行。是否可以通过简单的方法反序列化而无需重构代码以使用shared_ptr?人也有功能
template<class Archive>
void serialize(Archive & archive, const unsigned int version){
...
}
Boost序列化尚不支持unordered _ *。
要么添加支持,要么使用(不建议使用的)GCC hash_ *容器
如何添加支持的示例在我的以下答案中:C++ Boost.Serialization error for hash_map with custom objects as key
Boost自版本1.5.6起已支持unordered_set
和unordered_map
。您可以只包含头文件。
#include <boost/serialization/unordered_map.hpp>
#include <boost/serialization/unordered_set.hpp>