这已经很简洁了,但是如果我可以将列表映射为Ruby,那将是非常棒的。假设我有一个QStringList
myStringList,其中包含诸如“12.3”,“-213.0”,“9.24”之类的内容。我只想使用toDouble
映射整个对象,而不必进行迭代。 Qt对此有办法吗?
// i.e. I would love a one-liner for the following
// NB QT provices foreach
QList<double> myDoubleList;
foreach(QString s, myStringList) {
myDoubleList.append(s.toDouble());
}
最佳答案
据我所知,QT的容器具有与Standard容器兼容的接口(interface),因此您应该能够在它们上使用Standard算法。在这种情况下,
std::transform(myStringList.begin(),
myStringList.end(),
std::back_inserter(myDoubleList),
std::mem_fun(&QString::toDouble));