c ++ vector to逗号分隔的字符串?

时间:2012-12-10 21:07:04

标签: c++

  

可能重复:
  C++ Vector to CSV by adding Comma after each element

我有一个矢量:

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

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

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

然后,将其转换回来?

2 个答案:

答案 0 :(得分:16)

使用std::transformstd::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(); });

答案 1 :(得分: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))