我正在序列化来自项目的两个不同分支的一些数据。使用boost::serialization将数据以文本存档形式输出。由于要在两个序列化文件之间进行比较,因此我还在每个序列化部分之间的序列化文件中添加了一些调试消息,以便更好地看到输出中可能出现差异的点。
下面是我目前使用的代码的大致概述:
std::ofstream ofs("./SomeFile.txt"); // for brevity's sake, no actual path used
{
boost::archive::text_oarchive oa(ofs);
std::string debug_
我将多个数据加载到boost::archive::text_oarchive中,现在需要提取数据。但是因为归档文件包含多条记录,所以我需要一个迭代器。
就像这样
//input archive
boost::archive::text_iarchive iarch(ifs);
//read until the end of file
while (!iarch.eof()){
//read current value
iarch >> temp;
...//do something with temp
}
有没有什么标准的方法来迭代归档文件的元素?我只找到了iarchive.
我看过类似这样的问题,但似乎大多数答案都表明,人们使用类似sqlite的内存数据库。也许这是唯一真正的解决办法,但我无论如何都会问。
我有很多这样的记录:
struct record
{
int id;
int type;
// bunch of other data
}
这个问题涉及到将其中的许多存储在允许高效运行时查询的数据结构中,例如
GetAllForId(int)
GetAllOfType(int)
GetAllOfTypeAndId(int,int)
对于给定的id,可以有多个类型的记录,对于不同的id,可以有多个类型的记录。
我还希望能够轻松地修改任何
G