将字符串转换为配对向量?

时间:2012-12-12 17:46:35

标签: c++ qt

我有一个字符串:

1,a,2,b,3,c etc

我想将其转换为配对矢量:

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

1为int,a为字符串,2为下一个int,b为下一个字符串等。

由于

1 个答案:

答案 0 :(得分:1)

int main()
{
  QString foo = "1,a,2,b,3,c";
  QStringList splits = foo.split(',');
  assert(splits.size() % 2 == 0); // check if even
  qDebug() << splits;

  std::vector< std::pair<int, QString> > vs;
  for(QStringList::const_iterator it = splits.begin(); 
      it != splits.end(); ++it) { 
    bool ok;
    QStringList::const_iterator tmp = it;
    ++it;

    vs.push_back(std::make_pair(tmp->toInt(&ok, 10), *it));
    assert(ok); // check if conversion worked
  }
  return 0;
}