C++ 将父名称添加到boostptree

C++ 将父名称添加到boostptree,c++,boost,boost-propertytree,C++,Boost,Boost Propertytree,我有一个带有节点的boost 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”的树。有办法做到这一点吗?您所描述的方法已经奏效了。查看它 如果你想过滤掉任何“非a”,只要 删除其他节点 创建新树 for (auto it = pt.begin(); it !=

我有一个带有节点的boost 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”的树。有办法做到这一点吗?

您所描述的方法已经奏效了。查看它

如果你想过滤掉任何“非a”,只要

  • 删除其他节点

  • 创建新树

for (auto it = pt.begin(); it != pt.end();)
{
    if (it->first != "a")
        it = pt.erase(it);
    else
        ++it;
}
ptree pt2;
pt2.add_child("a", pt.get_child("a"));