我有一个矢量:
std::vector<std::pair<int, QString> > recordingArray;
我需要将其转换为逗号分隔字符串,以便将其存储在数据库中(有更好的数据格式 - 所有这些都需要放在一个字段中)
如何将其转换为逗号分隔字符串?
然后,将其转换回来?
答案 0 :(得分:16)
使用std::transform
和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(); });
答案 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))
。