如何在YAML中发出以逗号分隔的列表

时间:2016-09-09 20:12:52

标签: c++ yaml-cpp

我有一个全部为零的9 3x3矩阵。我试图以行主要形式输出它,使它看起来像。 协方差:0,0,0,0,0,0,0,0,0,

我试过了

out1 << YAML::Key << "covariance";
out1 << YAML::Literal<< covariance[0][0]<< "," << covariance[0][1]... etc.

但我明白了:

协方差:0 &#34;,&#34;:0 我做错了什么?

注意:我不想要[0,0,0,0,0,0,0,0,0]。我希望它没有括号

1 个答案:

答案 0 :(得分:0)

构建一个字符串,然后打印出来:

std::stringstream value;
for (int i=0;i<N;i++) {
  value << covariance[0][i];
  if (i + 1 < N) {
    value << ",";
  }
}
YAML::Emitter out;
out << YAML::BeginMap;
out << YAML::Key << "covariance" << YAML::Value << value.str();
out << YAML::EndMap;

关键是你打印的值不是YAML列表,它只是一个看起来有点像YAML的普通字符串。所以你不能使用 yaml-cpp为你格式化它;你需要自己做。