0

N * Mのfloatの行列があるとすると、この行列を文字列バッファーに変換するC ++関数が必要です(同じ行の値の間の区切り文字として\ tを使用し、新しい行に戻るために\ nを使用します)。お気に入り:

String converteMatrixToString( vector< vector<float> > )
{
   /* ... */
   return converted;
}

それを行うための既存のC++関数はありますか?

4

1 に答える 1

1

行列が実際の型である場合は、出力をストリーミング可能にすることができます。これは、物事を「文字列に変換可能」にするための好ましい方法です。これにより、を使用するなど、マトリックスを出力しstd::coutたり、他の種類のストリームに出力したりすることができなくなりますstd::lexical_cast

今のところ、できる最善の方法はを使用することですstd::ostringstream。ここで擬似コード:

std::ostringstream stream;

foreach( row in matrix )
{
   foreach( value in row )
       stream << value << '\t';
   stream << '\n';
}

return stream.str();
于 2012-05-26T22:19:03.947 に答える