我已经编写了以下代码(用于测试):

boost::property_tree::ptree ptRes;
boost::property_tree::ptree ptRes2;
boost::property_tree::ptree ptRes3;
boost::property_tree::ptree ptA;
boost::property_tree::ptree ptB;
boost::property_tree::ptree ptQ;
boost::property_tree::ptree ptZ;

boost::property_tree::json_parser::read_json("../a.json", ptA);
boost::property_tree::json_parser::read_json("../b.json", ptB);
ptRes.put_child("ptA", ptA);
ptRes.put_child("ptB", ptB);
boost::property_tree::json_parser::write_json("res.json", ptRes);

boost::property_tree::json_parser::read_json("../a.json", ptQ);
ptRes2.put_child("ptA", ptQ);
boost::property_tree::json_parser::read_json("../b.json", ptQ);
ptRes2.put_child("ptB", ptQ);
boost::property_tree::json_parser::write_json("res2q.json", ptRes2);

boost::property_tree::json_parser::read_json("../a.json", ptZ);
ptRes3.put_child("ptA", ptZ);
ptZ.clear();
boost::property_tree::json_parser::read_json("../b.json", ptZ);
ptRes3.put_child("ptB", ptZ);
boost::property_tree::json_parser::write_json("res3z.json", ptRes3);


但在所有3种情况下输出都是相同的。我的问题是我想创建一个包含其他3个ptreeptree,但我不确定如何做得更好(在json阅读部分):


在不同的ptree中读取每个文件
读取同一ptree中的每个文件
读取同一ptree中的每个文件,但每次ptree清除


我在成员类型为ptree的类的构造函数中执行此操作,如果不需要,我将不会再创建3个ptree。有什么建议么?

最佳答案

我认为更好的方法是使用本地ptree进行案例2,以填充类成员ptree。请注意,情况2和3实际上是相同的,因为as specified in the doc,ptree实例已清除。

关于c++ - Boost ptree重用是否需要清除?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24910272/

10-13 08:48