c++ - 将树数据结构转储到文件或从文件恢复树数据结构

标签 c++ mongodb neo4j tree nosql

我有一个带有一组特定类的 n 叉树数据结构。数据结构经历一组从 1 到 n 的转换。在上述转换结束时,最终的树是用于检索信息的输出结果。

有没有一种方法可以在每次正确的转换后(二进制)转储树。转储将反射(reflect)上次转换后树的状态。因此,如果任何转换出错,我可以恢复内存中的转储,而无需再次进行正确的转换。它类似于 GDB 提供的用于保存程序状态快照的检查点功能

  • 我研究了 MongoDB、CouchDB、Redis 等 NoSQL 数据库,但它们主要是键值数据存储(Redis)或将信息存储在文档类型结构中,不存储树中节点之间的关联/关系( MongoDB)。
  • 我还研究了 Neo4j 图形数据库,它是表示类图结构的一个很好的工具。

Redis-dump , Neo4j-dumpMongoDB-dump可用,但我无法决定在其中选择哪一个。由于转储创建和恢复时间不应该很长,因此上面哪一个更容易填充。

我想知道遇到这个问题的程序员的意见和反馈 以及他们是如何解决的。这样做的最好方法是什么?

附注我现有的实现是用 C++ 实现的。如果有任何不清楚的地方请告诉我,我会尽力以更好的方式进行解释。

最佳答案

我相信您想要的是 boost::serialize 提供的功能。它将为您序列化和反序列化 STL 集合。

看这里: http://www.boost.org/doc/libs/1_54_0/libs/serialization/doc/tutorial.html#stl

关于c++ - 将树数据结构转储到文件或从文件恢复树数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19356396/

相关文章:

c++ - 简化类中的 `operatorX` 函数以按给定顺序比较相同类型的属性的正确方法或设计模式?

c++ - 如何在没有依赖的情况下构建 harfbuzz

c++ - 蓝牙连接失败

python - Mongolab 拒绝连接

javascript - 从 Meteor 中的对象数组中插入文档到集合中

database - Neo4j read_only 不起作用

data-structures - Neo4j如何在内部存储数据?

c++ - 需要对 getchar() 和换行符进行说明

node.js - 限制 Mongoose 字段值

java - Neo4j 未正确保存标签