Boost ptree повторно использовать нужно очистить или нет?

0

Я написал следующий код (для тестирования):

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);

но результат одинаковый во всех трех случаях. Моя проблема в том, что я хочу создать ptree который содержит 3 других ptree и я не уверен, как это сделать лучше (в части чтения json):

  • чтение каждого файла в другом ptree
  • чтение каждого файла в том же ptree
  • чтение каждого файла в том же ptree, но каждый раз, когда ptree

Я делаю это в конструкторе класса, который имеет член типа ptree и я бы не создал еще 3 ptree если не был нужен. Какие-либо предложения?

  • 0
    Наличие местного дерева для случая 3 не соответствует тому, что вы хотите?
  • 1
    Это подходит, но я должен сделать clear() или нет?
Показать ещё 1 комментарий
Теги:
boost

1 ответ

1
Лучший ответ

Я думаю, что лучший способ - сделать случай 2 с локальным ptree, чтобы заполнить член класса ptree. Обратите внимание, что случаи 2 и 3 на самом деле одинаковы, поскольку, как указано в документе, экземпляр ptree очищается.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню