5

重複の可能性:
各要素の後にカンマを追加して C++ ベクトルを CSV に変換

私はベクトルを持っています:

std::vector<std::pair<int, QString> > recordingArray;

データベースに保存できるように、コンマ区切りの文字列に変換する必要があります(データのより良い形式はありますか-すべてを1つのフィールドに入れる必要があります)

カンマ区切りの文字列に変換するにはどうすればよいですか?

そして後で、それを元に戻しますか?

4

2 に答える 2

18

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(); });
于 2012-12-10T21:42:40.207 に答える
2
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))

于 2012-12-10T21:19:21.560 に答える