【问题标题】:Can I rename a node in yaml-cpp?我可以重命名 yaml-cpp 中的节点吗?
【发布时间】:2020-07-09 18:40:57
【问题描述】:

假设我有一个像 foo: bar 这样的 YAML 条目。我可以使用 yaml-cpp 将密钥 foo 重命名为 buz 而无需复制所有内容吗?换句话说,我知道我可以这样做:

YAML::Node node = YAML::Load("foo:bar");
YAML::Node new_node;
new_node["buz"] = node["foo"];

但是,这似乎很浪费,我想知道是否有一个内置功能可以重命名密钥foo

【问题讨论】:

    标签: yaml yaml-cpp


    【解决方案1】:

    你可以做类似的事情

    YAML::Node node = YAML::Load("foo: bar");
    for (auto it = node.begin(); it != node.end(); ++it) {
      if (it->first.as<std::string>() == "foo") {
        it->first = "buz";
        break;
      }
    }
    

    据我所知,yaml-cpp 将其映射项存储为对列表,因此无论如何查找都会执行这样的循环。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多