大家好,又见面了,我是你们的朋友全栈君。
QT的迭代器有两种类型:STL形式和JAVA形式。
QT的STL形式的迭代器,和STL的迭代器用法类似,而JAVA形式的迭代器,则提供了一套迭代器类,用于QT容器的迭代。
这其中,就有QT的迭代器类QMapIterator。
QMapIterator的公共函数如下:
QMapIterator(const QMap<Key, T> & map) | |
---|---|
bool | findNext(const T & value) |
bool | findPrevious(const T & value) |
bool | hasNext() const |
bool | hasPrevious() const |
const Key & | key() const |
Item | next() |
Item | peekNext() const |
Item | peekPrevious() const |
Item | previous() |
void | toBack() |
void | toFront() |
const T & | value() const |
QMapIterator & | operator=(const QMap<Key, T> & map) |
QMapIterator中,每次迭代器并不指向元素,而是指向两个元素之间。
QMapIterator的样例如下所示:
QMap<int, QWidget *> map; … QMapIterator<int, QWidget *> i(map); while (i.hasNext()) { i.next(); qDebug() << i.key() << “: ” << i.value(); }
注意的是:必须先调用next()方法,才能指向下一个下一个值,这和我们理解的语法有区别。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139307.html原文链接:https://javaforall.cn