|
|
1
16
退房 tpl 。从概述来看:
|
|
|
2
10
我知道你要一个图书馆。如果你找不到一个:(Burg::,你会认为这是一个解决的问题!),下面是解决方案的大纲: 您应该能够编写代码生成器[1]来序列化树/图,而无需(运行时)相当简单的预处理。
您需要解析节点结构(
回读还需要一个节点-/内存位置转换步骤,而且可能更容易在两个过程中完成:使用指针槽中的节点号重新生成节点(坏指针,警告)以找出每个节点的位置,然后再次遍历结构以修复指针。 我对第三方物流一无所知,但你也许可以依靠它。 磁盘/网络格式可能应该用一些类型信息作为框架。你需要一个破坏名誉的计划。 〔1〕 ROOT 使用此机制在C++中提供非常灵活的序列化支持。 延迟添加: 我突然想到,这并不总是像我上面暗示的那样容易。考虑以下声明(做作且设计不当):
假设我们初始化
当我们去序列化数据时,我们该怎么做
在设计数据结构和/或为序列化过程提供特定于实例的智能时,您需要小心。 |
|
|
3
6
这是我的解决办法。它使用我自己实现的malloc、free和mmap、munmap系统调用。遵循给定的示例代码。裁判: http://amscata.blogspot.com/2013/02/serialize-your-memory.html
在我的方法中,我创建一个char数组作为自己的ram空间。然后有分配内存和释放内存的函数。在创建数据结构之后,通过使用
每当你想把它加载回内存时,有一个函数
|
|
|
4
4
你可以看一看 eet . 用于存储C数据类型(包括嵌套结构)的启蒙项目库。尽管启蒙计划的几乎所有lib都处于alpha之前的状态,eet已经发布。然而,我不确定它是否能处理循环引用。可能不是。 |
|
|
5
3
|
|
|
6
3
你应该去看看gwlib。序列化程序/反序列化程序是扩展的。还有大量的测试可供参考。 http://gwlib.com/ |
|
7
2
我假设你说的是存储一个图形结构,如果不是,那么忽略… 如果您存储一个图,我个人认为最好的方法是实现一个函数,将您的图转换为邻接矩阵。然后,您可以创建一个将邻接矩阵转换为图形数据结构的函数。 这有三个好处(在您的申请中可能重要,也可能不重要):
我在一个cs项目中使用了这种方法,而且肯定是我将再次使用它的方式。 你可以在这里阅读更多关于邻接矩阵的内容: http://en.wikipedia.org/wiki/Modified_adjacency_matrix |
|
|
8
1
另一个选择是 Avro C ,实现 Apache Avro 在C. |
|
9
1
下面是一个使用 Binn 图书馆(我的作品):
如果你不想使用字符串作为键,你可以使用一个使用整数作为键的宾尼地图。 还支持列表,所有这些结构都可以嵌套:
|
|
|
10
0
理论上亚姆应该做你想做的事 http://code.google.com/p/yaml-cpp/ 如果对你有用,请告诉我。 |