yaml文件如何转C++ 类
时间: 2024-03-17 14:43:23 浏览: 137
将 YAML 文件转换为 C++ 类需要使用 YAML-CPP 库。该库提供了将 YAML 文件转换为 C++ 对象以及将 C++ 对象转换为 YAML 文件的功能。
以下是一个示例,演示了如何将一个包含姓名、年龄和爱好的 YAML 文件转换为对应的 C++ 类:
假设 YAML 文件如下:
- name: Alice
age: 25
hobbies:
- reading
- hiking
- name: Bob
age: 30
hobbies:
- swimming
- photography
对应的 C++ 类可以定义如下:
#include <string>
#include <vector>
class Person {
public:
std::string name;
int age;
std::vector<std::string> hobbies;
};
要将 YAML 文件转换为 C++ 对象,可以使用以下代码:
#include <yaml-cpp/yaml.h>
#include "person.h" // 上面定义的类
int main() {
YAML::Node node = YAML::LoadFile("people.yaml");
std::vector<Person> people;
for (const auto& person_node : node) {
Person person;
person.name = person_node["name"].as<std::string>();
person.age = person_node["age"].as<int>();
const auto& hobbies_node = person_node["hobbies"];
for (const auto& hobby_node : hobbies_node) {
person.hobbies.push_back(hobby_node.as<std::string>());
}
people.push_back(person);
}
// 现在,people 中包含了 YAML 文件中的所有人员信息。
}
以上代码将 YAML 文件解析为 YAML::Node 对象,然后遍历每个人员节点,并将其转换为对应的 Person 对象。在转换过程中,可以使用 YAML-CPP 库提供的 as() 函数将 YAML 节点转换为对应的 C++ 类型。
相关推荐

















