我有一个带有一组特定类的 n 叉树数据结构。数据结构经历一组从 1 到 n 的转换。在上述转换结束时,最终的树是用于检索信息的输出结果。
有没有一种方法可以在每次正确的转换后(二进制)转储树。转储将反射(reflect)上次转换后树的状态。因此,如果任何转换出错,我可以恢复内存中的转储,而无需再次进行正确的转换。它类似于 GDB 提供的用于保存程序状态快照的检查点功能。
- 我研究了 MongoDB、CouchDB、Redis 等 NoSQL 数据库,但它们主要是键值数据存储(Redis)或将信息存储在文档类型结构中,不存储树中节点之间的关联/关系( MongoDB)。
- 我还研究了 Neo4j 图形数据库,它是表示类图结构的一个很好的工具。
Redis-dump , Neo4j-dump和 MongoDB-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/