C++ 序列化
Table of Contents

什么是序列化

程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯。这个 将程序数据转化成能被存储并传输的格式的过程 被称为“序列化”(Serialization),而它的逆过程则可被称为“反序列化” (Deserialization)。

简单来说,序列化就是将对象实例的状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它根据流重构对象。这两个过程结合起来,可以轻 松地存储和传输数据。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。

总结:

为什么需要序列化

简单来说,对象序列化通常用于两个目的:

对象序列化的好处在哪里?

网络传输上的便捷性、灵活性。

缓存计算结果,节省时间。例子:你有一个数据结构,里面存储的数据是经过很多其它数据通过 非常复杂的算法 生成的,由于数据量很大,算法又复杂,因此生成该数据结构所用数据的时间可能要很久(也许几个小时,甚至几天),生成该数据结构后又要用作其它的计算,那么你在调试阶段,每次运行个程序,就光生成数据结构就要花上这么长的时间,无疑代价是非常大的。如果你确定生成数据结构的算法不会变或不常变,那么就可以通过序列化技术生成数据结构数据存储到磁盘上,下次重新运行程序时只需要从磁盘上读取该对象数据即可,所花费时间也就 读一个文件的时间 ,可想而知是多么的快, 节省了我们的开发时间

常见 C++ 序列化方式

参考

http://www.cnblogs.com/lanxuezaipiao/p/3703988.html

Related