重复使用的增强ptree是否需要清除?

时间:2014-07-23 12:16:27

标签: c++ boost

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

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个其他ptree的{​​{1}}并且我不确定如何做得更好(在json阅读部分):

  • 以不同的ptree
  • 阅读每个文件
  • 读取同一ptree
  • 中的每个文件
  • 读取同一ptree中的每个文件,但每次ptree
  • 时都会清除

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

1 个答案:

答案 0 :(得分:1)

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