hashmap - c++ hash_map 持久化
高洛峰
高洛峰 2017-04-17 11:59:51
0
3
665

c++ 中怎么将hash_map 存储到文件中 这个牵扯到序列化和反序列化 有做过这方面的大神吗?据说boost 库提供了一个 方法 但是查到的资料很少。有谁有这方面的资料 共享下 谢谢!!!

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(3)
Peter_Zhu

只要能遍歷 hash_map,就可以序列化,而一般集合類別資料結構都是可以遍歷的,hash_map 也不例外

序列化

透過 hash_map 物件的 size() 方法取得項數,寫入流,
透過 hash_map::iterator 遍歷 hash_map 對象,依序將 key 和 value 寫入流。

反序列化

讀取的時候產生一個 hash_map 對象,
先讀取數量,再以這個數量進行一個 for 循環,
依序讀入 key 和 value 對,並插入剛才的 hash_map 物件中

左手右手慢动作

如果考慮第三方的函式庫,推薦google的protobuf,可直接將hash_map物件序列化後儲存;

大家讲道理

不知道你的資料規模還有hash_map的修改頻次啊,我就說說我現在的情況和實現吧
我的map大概幾千到幾萬項,增刪改都不頻繁,持久化做到共享記憶體裡。
所以共享記憶體的結構就定義了一個struct,裡面就是key和value。程式運行時對map的增刪改全部轉換成對共享記憶體的寫,程式重啟的時候從共享記憶體裡讀出所有的項,重新形成map。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!