重複の可能性:
各要素の後にカンマを追加して C++ ベクトルを CSV に変換
私はベクトルを持っています:
std::vector<std::pair<int, QString> > recordingArray;
データベースに保存できるように、コンマ区切りの文字列に変換する必要があります(データのより良い形式はありますか-すべてを1つのフィールドに入れる必要があります)
カンマ区切りの文字列に変換するにはどうすればよいですか?
そして後で、それを元に戻しますか?
重複の可能性:
各要素の後にカンマを追加して C++ ベクトルを CSV に変換
私はベクトルを持っています:
std::vector<std::pair<int, QString> > recordingArray;
データベースに保存できるように、コンマ区切りの文字列に変換する必要があります(データのより良い形式はありますか-すべてを1つのフィールドに入れる必要があります)
カンマ区切りの文字列に変換するにはどうすればよいですか?
そして後で、それを元に戻しますか?
std::transform
これには と aを使用std::stringstream
します。
std::stringstream str;
std::transform(
recordingArray.begin(),
recordingArray.end(),
std::ostream_iterator<std::string>(str, ", "),
[](const std::pair<int, QString> &p) { return std::to_string(p.first) + ", " + p.second.toStdString(); });
string line = "";
auto it = recordingArray.begin();
while(it != recordingArray.end())
{
line.append(*it);
line.append(',');
}
これは、各アイテムが文字列に直接変換できることを前提としています。toString 関数を記述する必要がある場合があります。
string toString(std::pair<int, QString>> input)
{
/* convert the data to a string format */
}
次に、 を呼び出しますline.append(toString(*it))
。