看板 C_and_CPP 關於我們 聯絡資訊
寫題目的時候遇到序列化的問題, 查了很久還是不清楚到底什麼是序列化, 想問問大家我對序列化的了解是否正確。 目前了解要序列化是因為舉例來說像是 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://www.ptt.cc/bbs/C_and_CPP/M.1554313173.A.8BD.html ※ 編輯: AirWall (114.24.9.88), 04/04/2019 01:41:25
hsnuyi: 所以tree原始是怎麼儲存的? 在記憶體中總不是畫些node用鉛 04/04 02:37
hsnuyi: 筆連起來吧 04/04 02:37
hsnuyi: 不然這樣問好了 leetcode中有關tree的題目 它原始的test d 04/04 02:42
hsnuyi: ata是怎給的? 這裡指的不是餵進function的root node point 04/04 02:42
hsnuyi: er 04/04 02:42
s4300026: 序列化就是用小,中,大括號表示表示,變數,陣列,vect 04/04 12:01
s4300026: or,map,class等儲存格式。 04/04 12:01
Feis: 先了解什麼是反序列化? 04/04 12:12
yvb: 1. google: bitstream wiki 04/04 12:14
yvb: 2. 未必字串,甚至位元為單位也可能,只是大多存儲單位是位元組 04/04 12:14
AirWall: 感謝大家的關鍵字,瞭解許多,謝謝 04/05 01:49
x246libra: 我個人是比較分不清楚serialize 跟marshal 04/05 17:09