例如:
QList<QMap<QString,QString> > list
QList<QMap<QString,QString> >::iterator i;
for (i = list.begin(); i != list.end(); ++i)
{
QMap<QString,QString>::iterator j;
for (j = i->begin(); j != i->end(); ++j)
qDebug() << j.key() << ": " << j.value() << endl;
}
所以这个stl风格正在发挥作用。但我无法改写为java风格:
QListIterator<QMap<QString,QString> > i(list);
while (i.hasNext())
{
QMapIterator<QString,QString> j(i); //error
while (j.hasNext()) {
j.next();
qDebug() << j.key() << ": " << j.value() << endl;
}
}
我收到错误 - cannot convert parameter 1 from QListIterator<T>' to 'const QMap<Key,T>
答案 0 :(得分:1)
使用java样式迭代器时需要获取下一个项目,如下所示:
QMapIterator<QString,QString> j(i.next()); //no error