我已经创建了一个简单的地图和其上的迭代器。当我将迭代器移动到下一个项时,它表现良好。但是,在向前移动迭代器后,如果我要求它返回先前的项并获取迭代器的值(value()),实际上它并不是先前的项值,而且值根本没有改变。看起来有些问题,或者我使用的方法不正确!问题出在哪里呢?
请看下面的代码:
请看下面的代码:
#include "mainwindow.h"
#include <QApplication>
#include <QMap>
#include <qiterator.h>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMap<double,int> map;
map.insert(4234,3);
map.insert(4200,2);
map.insert(4100,1);
map.insert(4000,0);
QMapIterator<double, int> i(map);
i.toFront();
i.next();
i.next();
int va1 = i.value(); // val1 is 1 as expected
i.previous();
int val2 = i.value(); // It is expected that val2 should be 0 but is still Surprisingly 1!!!!
return a.exec();
}