添加父名称以提升ptree

时间:2014-10-16 02:52:05

标签: c++ boost boost-propertytree

我有一个带节点的增强ptree:

pt.put("a.b", 1.0);
pt.put("a.c", 2.0);
pt.put("b.g", 3.0);

我想提取一个具有“a.b”和“a.c”(但不是“b.g”)的树。当我使用pt.get_child(“a”)时,我得到一个带有“b”和“c”的树。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

您所描述的内容已经奏效。见 Live On Coliru

如果你想过滤掉“非a”的任何内容,只需

  • 删除其他节点 Live on Coliru

    for (auto it = pt.begin(); it != pt.end();)
    {
        if (it->first != "a")
            it = pt.erase(it);
        else
            ++it;
    }
    
  • 创建新树 Live on Coliru

    ptree pt2;
    pt2.add_child("a", pt.get_child("a"));