【问题标题】:Boost ability to save an unordered_map to disk提高将 unordered_map 保存到磁盘的能力
【发布时间】:2012-04-04 13:20:26
【问题描述】:

下面有一个 unordered_map,我想将其保存到磁盘。问题是我的 unordered_map 包含指向我的自定义类的指针。你能告诉我一个如何做到这一点的例子吗?

boost::unordered_map<char*,boost::variant<macro*,module*>,myhash,cmp_str> *_REF;

【问题讨论】:

  • “持久化”是什么意思?
  • 嗨 Nicol,我想将无序地图保存到磁盘。
  • 如果它包含指针,当它被带回来时,这些指针会指向什么?您需要一次序列化整个数据结构(不仅仅是其中的一部分)。
  • 谢谢Mankarse,当取回数据结构时,指针是否仍指向正确的对象?
  • @BinhVanPham:是的,但前提是它在程序的同一运行中,并且只有那些对象仍然存在。

标签: c++ serialization boost c++11


【解决方案1】:

您需要某种序列化机制来将映射的内容保存到磁盘。 为此,我建议您查看 Boost 序列化库:

http://www.boost.org/libs/serialization/

希望这会有所帮助。

【讨论】:

  • 嗨 Dmitri,问题是我的哈希使用了变量,它接受指针而不是对象。所以我想知道这种情况下的序列化是否能够将哈希写入磁盘并完整地检索哈希?谢谢迪米特里
  • 希望这仍然相关......您需要定义特定于您的地图元素类型的序列化方法。详情请查看此链接:boost.org/doc/libs/1_49_0/libs/serialization/doc/index.html
猜你喜欢
  • 1970-01-01
  • 2012-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-17
  • 2011-04-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多