作者AirWall (空气墙)
看板C_and_CPP
标题[问题] 序列化
时间Thu Apr 4 01:39:31 2019
写题目的时候遇到序列化的问题,
查了很久还是不清楚到底什麽是序列化,
想问问大家我对序列化的了解是否正确。
目前了解要序列化是因为举例来说像是 int 在不同编译器或者系统就会有
不同的 machine code,或者一些资料结构的状态不好直接储存,
所以转成一个方便的格式来储存,传输。
然後我看到序列化就是把资料转成 a squence of bits,
我的理解是 like 0101010111111110100 这样,
但我看到题目是把 binary tree 转成 "[1,2,3,null,null,4,5]" 的字串形式,
还有像是现在网路传输,很多序列化也是转成JSON字串,
这里我理解是因为原本 tree 的结构不好被储存,
转成字串形式就很好储存,也能依此还原出 tree。
但这个步骤好像比较像是把不好储存的状态转成一个好储存的格式,
跟转成 a squence of bits 好像没什麽关系?
1. 是因为最终这个 string 会被转成 010101001000 的格式所以也算有转成
a seq of bits吗?
2. 如果是这样,想请问除了序列化成字串以外,还可以序列化成什麽?
可以序列化成 array of char 吗,因为 array contiguous 然後 char 都是 1 Byte
如果有理解错误,或问题怪怪的,
还麻烦指正一下,感谢~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.24.9.88
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1554313173.A.8BD.html
※ 编辑: AirWall (114.24.9.88), 04/04/2019 01:41:25
1F:→ hsnuyi: 所以tree原始是怎麽储存的? 在记忆体中总不是画些node用铅 04/04 02:37
2F:→ hsnuyi: 笔连起来吧 04/04 02:37
3F:→ hsnuyi: 不然这样问好了 leetcode中有关tree的题目 它原始的test d 04/04 02:42
4F:→ hsnuyi: ata是怎给的? 这里指的不是喂进function的root node point 04/04 02:42
5F:→ hsnuyi: er 04/04 02:42
6F:推 s4300026: 序列化就是用小,中,大括号表示表示,变数,阵列,vect 04/04 12:01
7F:→ s4300026: or,map,class等储存格式。 04/04 12:01
8F:→ Feis: 先了解什麽是反序列化? 04/04 12:12
9F:→ yvb: 1. google: bitstream wiki 04/04 12:14
10F:→ yvb: 2. 未必字串,甚至位元为单位也可能,只是大多存储单位是位元组 04/04 12:14
11F:→ AirWall: 感谢大家的关键字,了解许多,谢谢 04/05 01:49
12F:推 x246libra: 我个人是比较分不清楚serialize 跟marshal 04/05 17:09