0

我正在开发一个程序来记录程序中变量的信息。我想按文件-> 函数-> 变量对这些信息进行分组。

boost::property_tree 似乎很适合这个,因为我可以将 Access 对象存储在树 ( file.function.variable) 的路径中,然后轻松地将树转换为 XML、JSON 等。

假设我正在记录变量的使用次数。我可以有一个 Access 类来跟踪对变量的写入和读取次数。然后我可以将此对象存储在树中的 file.function.variable 中。每次访问变量时,我都可以在树中找到变量并更新有关它的信息。

但是,我不知道如何在树中存储一个类。我认为我需要实现或子类化一些东西,但文档没有解决我想要做的事情。

我的问题有解决方案吗?有没有比 boost::property_tree 更好的选择?

谢谢你。

4

2 回答 2

0

boost::property_tree旨在保存文本数据。这就是它适合导出到 XML、JSON 等的原因。

修改您的类Access,使其包含与文本相互转换并将该文本存储在树中的方法。

于 2013-04-02T19:46:09.247 回答
0

您可以放弃树的想法,而只使用键值对的平面图。

例子:

std::map<std::string, Access> accesses;
// add one access
accesses["file.function.variable"] += 1;

您只需要编写一个从其内容生成 JSON 的例程,这应该很简单。(假设密钥的第一部分始终是文件,第二部分始终是函数,第三部分始终是变量。)

于 2013-04-02T20:41:54.333 回答