yaml-cpp 创建一个新的空地图?

yaml-cpp create a new empty map?

如何创建一个空映射的新 YAML 参数(用例是在代码的后面部分填充它)?最小工作示例:

YAML::Node node  = YAML::LoadFile("config.yaml");
node["new_map"] = "{}"; // this creates a string, but I want a map
std::ofstream fout("config.yaml");
fout << node;

您可以使用以 NodeType 作为参数的 YAML::Node constructor 强制它成为 Map:

#include <yaml-cpp/yaml.h>

#include <iostream>

int main() {
    YAML::Node node;
    node["new_map"] = YAML::Node(YAML::NodeType::Map);
    std::cout << node;
}

输出:

new_map:
  {}