【问题标题】:Vector to String to Comma String?向量到字符串到逗号字符串?
【发布时间】:2012-12-10 22:41:45
【问题描述】:
QString line = "";
std::vector<std::pair<int, QString> >::iterator it = recordingArray.begin();

while(it != recordingArray.end())
{
  line.append(*it);
  line.append(',');
}

上面循环出一个向量。我需要将这一对的每一部分转换为一个字符串,然后将其添加到“行”中。

我该怎么做?

【问题讨论】:

标签: c++


【解决方案1】:

我会使用std::stringstream,然后将其转换为QString

std::stringstream ss;
std::vector<std::pair<int, QString> >::iterator it = recordingArray.begin();

for(; it != recordingArray.end(); ++it)
{
  ss << it->first << ' ' << it->second.toStdString() << ',';
}

QString line = QString::fromStdString(ss.str());

编辑:我不确定 QString 是否会重载 operator&lt;&lt;(std::ostream &amp;out, const QString &amp;qs),因此似乎需要额外转换为 std::string

【讨论】:

  • 聚合 'std::stringstream ss' 类型不完整,无法定义
  • @user1013512 你#include &lt;sstream&gt;了吗?
  • 是的,解决了这个问题,但是你的代码现在在运行时崩溃了
  • @SchighSchagh 应该在 while 循环内 ++iter,否则无限循环
  • 这是导致冻结的循环
猜你喜欢
  • 1970-01-01
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多