5

可能重复:
通过在每个元素后添加逗号将 C++ 向量转换为 CSV

我有一个向量:

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

我需要将其转换为逗号分隔的字符串,以便我可以将其存储在数据库中(是否有更好的数据格式 - 所有内容都需要放在一个字段中)

如何将其转换为逗号分隔的字符串?

然后再把它转换回来?

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 回答