根据您提供的YAML片段,它表示一个具有键值对和嵌套列表的数据结构。如果您想在C++中解析该YAML并获取其中的数据,可以使用yaml-cpp库进行操作。以下是一个示例:
#include <iostream>
#include <yaml-cpp/yaml.h>
int main() {
std::string yamlString = R"(
generate:
- data_struct_number: 74
incentive_id: 1
node_id: 1
name: 全府员公多市面
notes: laborum
)";
YAML::Node config = YAML::Load(yamlString);
// 获取generate节点下的第一个元素(索引为0)
YAML::Node generateNode = config["generate"][0];
// 获取data_struct_number、incentive_id和node_id的值
int dataStructNumber = generateNode["data_struct_number"].as<int>();
int incentiveId = generateNode["incentive_id"].as<int>();
int nodeId = generateNode["node_id"].as<int>();
// 获取name和notes的值
std::string name = config["name"].as<std::string>();
std::string notes = config["notes"].as<std::string>();
// 输出获取到的值
std::cout << "data_struct_number: " << dataStructNumber << std::endl;
std::cout << "incentive_id: " << incentiveId << std::endl;
std::cout << "node_id: " << nodeId << std::endl;
std::cout << "name: " << name << std::endl;
std::cout << "notes: " << notes << std::endl;
return 0;
}
上述代码首先将您提供的YAML片段保存为一个字符串。然后使用YAML::Load()函数将其解析为YAML::Node对象。接下来,通过逐级访问节点以及使用.as<>()方法获取相应键的值。
请注意,示例中的索引 [0] 用于获取generate节点下的第一个元素,如果generate节点包含多个元素,则需要相应调整索引。
编译并运行上述代码可以输出以下结果:
data_struct_number: 74
incentive_id: 1
node_id: 1
name: 全府员公多市面
notes: laborum
希望这可以帮助到您!
内容由零声教学AI助手提供,问题来源于学员提问




