【问题标题】:saving C++ map structure to disk将 C++ 映射结构保存到磁盘
【发布时间】:2012-01-25 04:28:11
【问题描述】:

我有一个基于 C++ 映射的结构,我想将它保存到运行 Android 的基于 ext3 的闪存盘上。结构如下:

class kvBucket {
   ...
   map<string, kvBucket*> buckets;
   map<string, string> keyPairs;
   ...
}
class kvTree {
   ...
   kvBucket base;
   ...
}

保存“基础”对象(大约有几百个条目)的好方法是什么?

  1. 通过Android JNI访问的数据库(sqlite3)
  2. 对象序列化(增强)
  3. 另存为 XML 或 JSON 文件
  4. 别的东西

一个考虑是它需要防崩溃,所以如果有人在写入磁盘时拔掉了设备上的插头,我需要优雅地恢复。

【问题讨论】:

    标签: android c++ xml database json


    【解决方案1】:

    这些解决方案中的任何一个都很棒。

    如果您希望它防崩溃,请将您的写入临时文件,并且仅在写入完成后替换原始文件。最糟糕的情况是您有两个有效文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 2015-12-15
      • 1970-01-01
      • 2011-01-03
      • 2011-04-12
      • 2010-12-03
      • 2012-11-02
      相关资源
      最近更新 更多