制作一个树的持久副本(C++)
Make a persistent copy of a tree (C++)
我正在考虑将这个类似STL的树库用于C++http://tree.phi-sci.com/存储分层数据(想想组织结构图)。
在我的情况下,树只包含结构,每个节点的"有效负载"都存储在其他地方。因此,它可能最终成为tree<int>
或tree<simple_class_containing_a_couple_of_ints>
我想找到最好的方法来坚持这棵树。更具体地说,我想找到将树持久化到SQL数据库的最佳方法,以便在启动时将其加载回应用程序。
所以我的问题是:如何将tree.hh容器中包含的树持久化为SQL数据库?
注意:不需要将其作为树结构存储在数据库中(即不需要嵌套集、邻接列表)。不需要查询数据库,因为整个树都将加载到内存中。
更新:
我发现这个类是树的替代品http://stlplus.sourceforge.net/stlplus3/docs/ntree.html我还不能评论任何性能差异,但它主要实现了我所需要的,并且有一个持久性类(抱歉,没有链接,因为没有足够的信誉),我可以将其转储到BLOB。我还没有输入这个答案,因为我仍然对任何替代解决方案感兴趣。
我会在一个SQL表中保留每个节点(每个节点一行),也许在另一个表中保留每一个节点->同级关系。我不确定SQL是否是最好的持久化方法。您可以考虑使用JSON。
相关文章:
- 用callgrind追踪不必要的副本
- 关于:C++中异常对象的范围:为什么我没有得到副本?
- 在为LINUX创建共享库时,如何避免STL的私有/弱副本
- 检查注册表项是否链接到(或副本)另一个注册表项
- 为什么构建目录中新构建的共享库与安装目录中的副本具有不同的依赖项集?
- C++基于范围的 for 循环和元素副本
- 创建提升::shared_ptr的深层副本
- 如何从构造函数副本 T(const T&)调用对象 T?
- 副本初始化的默认模板参数推导
- C++深浅的副本
- 将相同共享指针的副本存储在不同的向量中是否是一种好的做法?
- Eigen - matrix.transpose 会创建矩阵的副本吗?
- 将 MatrixXd 的行传递给要修改的函数,而不在 Eigen 中创建副本
- 对如何制作双链表的深度副本感到困惑?
- 为什么 std::string s = "123" 当不涉及副本时被视为复制初始化?
- 指向基类的指针的 std::vector 的深层副本
- 如何避免将数据缓冲区的额外副本复制到字符串?
- 无法识别的类函数副本
- 使用unique_ptr并返回引用,或者我应该使用shared_ptr并在需要时制作副本
- Eigen LinSpaced - 已弃用的副本警告