是否需要清除重用的Boost ptree

Boost ptree reused need to be cleared or not?

本文关键字:Boost ptree 清除 是否      更新时间:2023-10-16

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

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 s。有什么建议吗?

我认为更好的方法是使用本地ptree来填充类成员ptree。请注意,情况2和3实际上是相同的,因为正如文档中指定的那样,ptree实例被清除。