【发布时间】:2019-05-09 10:55:33
【问题描述】:
我写了以下yaml文件:
linear: [0.0,1.0,10.0,0.05]
linear: [1.0,0.5,5.0,0.05]
rotational: [0.0,6.28,20,0.5]
rotational: [6.28,0.0,20,0.5]
我使用yaml-cpp 来解析它,代码如下:
YAML::Node sequence = YAML::LoadFile(filename_);
int count = 1;
for (YAML::const_iterator it = sequence.begin(); it != sequence.end(); ++it)
{
const std::string& name = it->first.as<std::string>();
const std::vector<double>& parameters = it->second.as<std::vector<double> >();
...
如果我打印 name 和 parameters 值(按我得到它们的顺序),输出是:
linear: [0,1,10,0.05]
rotational: [6.28,0,20,0.5]
linear: [1,0.5,5,0.05]
rotational: [0,6.28,20,0.5]
谁能解释一下发生了什么并建议我如何解决这个问题?
谢谢。
【问题讨论】:
-
它按照源文件的写入顺序解析。不存在其他实际可能性。它如何返回节点序列是另一回事。