这是我的一个测试程序
#include <QtCore/QCoreApplication>
#include <QDebug>
#include <QMap>
#include <QMapIterator>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QMap<QString,QString> map;
map.insert("beijing","010");
map.insert("shanghai","021");
map.insert("guangzhou","020");
map.insert("dsd","2324");
map.insert("dddddd","0000");
QMapIterator<QString,QString> i(map);
while(i.hasNext()){
qDebug()<< " " << i.peekNext().key() << " "<<i.next().value();
}
return a.exec();
}
不知道是我的编译问题还是怎样的问题,我用的是4.6.2 如果这样编译出来的话 只能显示当前数据-1的结果,即如果map.inert()有5条记录的话,则只能显示出4条,而且还报错 但如果把红色字那部分改成i.peekPrevious()的话可以显示出所有的记录,而且不报错,问题就在这里,不是应该用i.peekNext来迭代所有的数据的吗?但现在不仅少了记录而且还报错,不知道其原因,而且这个是书上的一个例子。