Boost序列化多个对象
我正在尝试构建一个持久性模块,并且正在考虑序列化/反序列化我需要对文件进行持久化的类。 Boost 序列化是否可以将多个对象写入同一个文件?如何读取或循环文件中的条目?如果良好的性能是一个条件,那么 Google 协议缓冲区对我来说可能会更好?
Im trying to build a persistence module and Im thinking in serialize/deserialize the class that I need to make persistence to a file. Is possible with Boost serialization to write multiple objects into the same file? how can I read or loop through entrys in the file? Google protocol buffers could be better for me if a good performance is a condition?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果序列化库无法序列化多个对象,那么它就不会很有用。如果您阅读他们的 非常广泛的文档,您可以找到所有答案。
A Serialization library wouldn't be very useful if it couldn't serialize multiple objects. You can find all the answers if you read their very extensive documentation.
我正在学习 boost,我认为您可以使用 boost 序列化作为日志文件,并使用您的逻辑不断添加值。我遇到了同样的问题,如果我没记错的话,您的代码是这样的:
在这里,当您关闭大括号(循环的大括号)时,序列化文件将关闭。你可能会看到 table.txt 中只写了一个值,如果你想存储多个值,你的代码应该是这样的:
在这里你可以看到包围 boost::serialization::text_oarchive 的大括号仅在我完成了我的逻辑结果的序列化。
I am learning boost, and I think you can use boost serialization as a log file and keep adding values using your logic. I faced the same problem, and if I'm not wrong your code was something like this :
Here when you close the braces (braces of the loop), the serialization file closes. And you may see only one value written in table.txt , if you want to store multiple values, your code should be something like this:
Here you can see that the braces enclosing boost::serialization::text_oarchive closes only when I'm done with serialization of the result of my logic.