c++ 中怎么将hash_map 存储到文件中 这个牵扯到序列化和反序列化 有做过这方面的大神吗?据说boost 库提供了一个 方法 但是查到的资料很少。有谁有这方面的资料 共享下 谢谢!!!
天蓬老师2017-04-17 12:01:51
只要能遍歷 hash_map,就可以序列化,而一般集合類別資料結構都是可以遍歷的,hash_map 也不例外
透過 hash_map 物件的 size()
方法取得項數,寫入流,
透過 hash_map::iterator 遍歷 hash_map 對象,依序將 key 和 value 寫入流。
讀取的時候產生一個 hash_map 對象,
先讀取數量,再以這個數量進行一個 for
循環,
依序讀入 key 和 value 對,並插入剛才的 hash_map 物件中
大家讲道理2017-04-17 12:01:51
不知道你的資料規模還有hash_map的修改頻次啊,我就說說我現在的情況和實現吧
我的map大概幾千到幾萬項,增刪改都不頻繁,持久化做到共享記憶體裡。
所以共享記憶體的結構就定義了一個struct,裡面就是key和value。程式運行時對map的增刪改全部轉換成對共享記憶體的寫,程式重啟的時候從共享記憶體裡讀出所有的項,重新形成map。