yaml-cpp在保存时如何重新排序节点?

时间:2015-02-19 09:53:50

标签: c++ yaml yaml-cpp

重写.yaml文件时,节点会重新排序。我似乎无法弄清楚它是如何重新排序的,以及模式是什么。有谁知道重新排序是如何完成的?

以下是重写.yaml文件的代码:

YAML::Node config = YAML::LoadFile("config.yaml");
config["lastLogin"] = getCurrentDateTime();
std::ofstream fout("config.yaml");
fout << config;

1 个答案:

答案 0 :(得分:2)

如果我们查看Node的实现,我们发现它将其子项存储在std::map<Node*, Node*>中,即从关键节点指针到值节点指针的映射。

因此,节点按其指针值排序(这几乎是随意的,并且可能会在不同的运行中发生变化),并且它们也按照该顺序编写。