关于c++序列化

发布时间 2023-12-12 18:19:22作者: 高树岭软件实验室

对于一个复杂数据对象的存储和装载有很多方式,比如自定义的文本或者2进制格式,以及对应的读取和写入程序。

也有一些适应力较强比较通用的方式,文本的有xml和json。尤其是xml文件查看起来比较方便。

但是xml的最大问题就是装载和保存都比较慢。装载1个大文件足以把头发等白:)

在c++里面也有一些2进制序列化的方法,比如:

1. MFC CObject DECLARE_SERIAL ,用过很好用,简单,快捷

2.boost的序列化库(开源),没用过,应该也是可以的

3.protobuf(开源),语言无关(可以支持c++,和python等多种语言),最开始用作网络协议解析用,但是用作永久存储应该也可以。目前在学习中

https://protobuf.dev/

4.Flatbuffers ,不了解,看起来跟protobuf差不多,但是高德在用。

5.Cap'n proto(开源),可以认为是protobuf的改良版,同一个人弄的,从界面看很清秀,不过需要高版本的c++做支持。

  https://capnproto.org/

 这几种方法都可以试试!:)