假设我有一个foo: bar
之类的YAML条目。是否可以使用yaml-cpp将键foo
重命名为buz
,而不必复制所有内容?换句话说,我知道我可以做到:
YAML::Node node = YAML::Load("foo:bar");
YAML::Node new_node;
new_node["buz"] = node["foo"];
但是,这似乎很浪费,我想知道是否有内置的功能可以重命名键foo
吗?
答案 0 :(得分:2)
好吧,你可以做类似的事情
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将其映射项存储为对列表,因此无论如何,查找都会执行这样的循环。