如何向yaml文件读入一个map
时间: 2024-01-25 20:02:38 浏览: 98
要将一个map读入到yaml文件中,您需要使用yaml-cpp库。下面是一个示例代码,可以将一个map读入到yaml文件中:
```c++
#include <iostream>
#include <fstream>
#include <map>
#include <yaml-cpp/yaml.h>
int main() {
std::map<std::string, int> myMap = {
{"apple", 1},
{"orange", 2},
{"banana", 3}
};
YAML::Emitter out;
out << YAML::BeginMap;
for (auto const& pair : myMap) {
out << YAML::Key << pair.first;
out << YAML::Value << pair.second;
}
out << YAML::EndMap;
std::ofstream file("myMap.yaml");
file << out.c_str();
file.close();
return 0;
}
```
在这个例子中,我们首先创建了一个包含字符串键和整数值的map。接下来,我们使用YAML::Emitter类来将map转换为YAML格式。最后,我们将生成的YAML字符串写入文件中。
如果您想从YAML文件中读取map,请使用YAML::LoadFile函数,如下所示:
```c++
std::map<std::string, int> myMap;
YAML::Node node = YAML::LoadFile("myMap.yaml");
for (auto const& pair : node) {
myMap[pair.first.as<std::string>()] = pair.second.as<int>();
}
```
在这个例子中,我们首先创建了一个空map。接下来,我们使用YAML::LoadFile函数从文件中加载YAML数据。然后,我们遍历YAML节点,并将节点中的键值对添加到map中。请注意,我们使用as<>函数将节点中的值转换为正确的类型。
阅读全文