使用 Boost 对复杂数据进行 C++ 序列化

标签 c++ serialization stl boost

我有一组类,我希望从中序列化数据。虽然有很多数据,(我们正在谈论一个 std::map 具有多达一百万或更多的类实例)。

我不想过早优化我的代码,我想我会尝试一个简单干净的 XML 实现,所以我使用 tinyXML 将数据保存到 XML,但速度太慢了。所以我开始研究使用 Boost.Serialization 编写和读取标准的 ascii 或二进制。

它似乎更适合这项任务,因为我不必在开始之前分配所有这些内存作为开销。

我的问题本质上是如何为文件格式规划最佳序列化策略。如果没有必要,我并不是特别想序列化整个 map ,因为它实际上只是我所追求的内容。稍微玩了一下序列化(并查看了输出),我不明白加载回数据如何知道它何时到达 map 的末尾,例如,如果我只是一个接一个地保存所有项目.在规划序列化策略时需要考虑哪些问题?

谢谢。

最佳答案

阅读此 FAQ !这对入门有帮助吗?

关于使用 Boost 对复杂数据进行 C++ 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/554646/

相关文章:

c++ - 实现流水线模式,设计和函数指针问题

c++ - 在 iOS 的 cocos2d-x v3 中使用自定义字体

c++ - 在 xcode 4.5.2 中编译带有 C++11 支持的混合 Objective-C/C++ 项目时出现链接错误

c# - 反序列化 XML 时出现 FileNotFoundException

vb.net - 获取List的类型

C++ 为成员容器中的项调用for_each中的成员函数

c++ - 如何更新 clang 版本以编译 C++11 项目? (在 Mac 上)

c# - 根据属性的运行时值选择性地序列化属性

c++ - 使用 for_each 和 bind 反转 vector 中的字符串

C++ 字符串 - 如何避免获取无效指针?