QT QMapIterator

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()方法,才能指向下一個下一個值,這和我們理解的語法有區別。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章