我有一个向量:
std::vector<std::pair<int, QString> > recordingArray;
我需要将其转换为逗号分隔的字符串,以便我可以将其存储在数据库中(是否有更好的数据格式 - 所有内容都需要放在一个字段中)
如何将其转换为逗号分隔的字符串?
然后再把它转换回来?
我有一个向量:
std::vector<std::pair<int, QString> > recordingArray;
我需要将其转换为逗号分隔的字符串,以便我可以将其存储在数据库中(是否有更好的数据格式 - 所有内容都需要放在一个字段中)
如何将其转换为逗号分隔的字符串?
然后再把它转换回来?
为此使用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))
。