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

How to emit a list separated by commas in YAML

我有一个全为零的 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 “,”:0 我做错了什么?

注意:我不想要 [0,0,0,0,0,0,0,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 为你格式化它;你需要自己做。