QHashIterator Class
template <typename Key, typename T> class QHashIteratorLa classe QHashIterator fournit un itérateur constant de style Java pour QHash et QMultiHash. Plus...
| En-tête : | #include <QHashIterator> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
Fonctions publiques
| QHashIterator(const QHash<Key, T> &hash) | |
| bool | findNext(const T &value) |
| bool | hasNext() const |
| const Key & | key() const |
| QHashIterator<Key, T>::Item | next() |
| QHashIterator<Key, T>::Item | peekNext() const |
| void | toBack() |
| void | toFront() |
| const T & | value() const |
| QHashIterator<Key, T> & | operator=(const QHash<Key, T> &hash) |
Description détaillée
QHash possède à la fois des itérateurs de style Java et des itérateurs de style STL. Les itérateurs de style STL sont plus efficaces et doivent être privilégiés.
QHashIterator<Key, T> vous permet d'itérer sur un QHash (ou un QMultiHash). Si vous souhaitez modifier le hachage au cours de l'itération, utilisez plutôt QMutableHashIterator.
Le constructeur de QHashIterator prend un QHash comme argument. Après la construction, l'itérateur est situé au tout début du hachage (avant le premier élément). Voici comment parcourir tous les éléments de manière séquentielle :
QHash<int, QWidget*> hash ;//...QHashIterator<int, QWidget*> i(hash) ;while (i.hasNext()) { i.next() ; qDebug() << i.key() << ": " << i.value(); }
La fonction next() renvoie l'élément suivant dans le hachage et fait avancer l'itérateur. Les fonctions key() et value() renvoient la clé et la valeur du dernier élément qui a été sauté.
Contrairement aux itérateurs de style STL, les itérateurs de style Java pointent entre les éléments plutôt que directement sur les éléments. Le premier appel à next() fait avancer l'itérateur à la position située entre le premier et le deuxième élément, et renvoie le premier élément ; le deuxième appel à next() fait avancer l'itérateur à la position située entre le deuxième et le troisième élément, et ainsi de suite.
Si vous souhaitez trouver toutes les occurrences d'une valeur particulière, utilisez findNext() dans une boucle. Par exemple :
QHashIterator<int, QWidget*> i(hash) ;while (i.findNext(widget)) { qDebug() << "Found widget " << widget << " under key " << i.key() ; }
Plusieurs itérateurs peuvent être utilisés sur le même hachage. Si le hachage est modifié alors qu'un QHashIterator est actif, le QHashIterator continuera à itérer sur le hachage original, en ignorant la copie modifiée.
Voir également QMutableHashIterator et QHash::const_iterator.
Documentation des fonctions membres
QHashIterator::QHashIterator(const QHash<Key, T> &hash)
Construit un itérateur pour parcourir hash. L'itérateur est placé au début du hachage (avant le premier élément).
Voir aussi operator=().
bool QHashIterator::findNext(const T &value)
Recherche value à partir de la position actuelle de l'itérateur. Retourne true si une paire (clé, valeur) avec la valeur value est trouvée ; sinon, retourne false.
Après l'appel, si value a été trouvé, l'itérateur est positionné juste après l'élément correspondant ; sinon, l'itérateur est positionné à l'arrière du conteneur.
bool QHashIterator::hasNext() const
Renvoie true s'il y a au moins un élément avant l'itérateur, c'est-à-dire que l'itérateur n' est pas à l'arrière du conteneur ; sinon, renvoie false.
Voir aussi next().
const Key &QHashIterator::key() const
Renvoie la clé du dernier élément qui a été sauté à l'aide d'une des fonctions de traversée (next(), findNext()).
Voir aussi value().
QHashIterator<Key, T>::Item QHashIterator::next()
Renvoie l'élément suivant et fait avancer l'itérateur d'une position.
Appelez key() sur la valeur de retour pour obtenir la clé de l'élément, et value() pour obtenir la valeur.
L'appel de cette fonction sur un itérateur situé à l'arrière du conteneur conduit à des résultats indéfinis.
Voir aussi hasNext() et peekNext().
QHashIterator<Key, T>::Item QHashIterator::peekNext() const
Renvoie l'élément suivant sans déplacer l'itérateur.
Appelez key() sur la valeur de retour pour obtenir la clé de l'élément, et value() pour obtenir la valeur.
L'appel de cette fonction sur un itérateur situé à l'arrière du conteneur conduit à des résultats indéfinis.
Voir aussi hasNext() et next().
void QHashIterator::toBack()
Déplace l'itérateur à l'arrière du conteneur (après le dernier élément).
Voir également toFront().
void QHashIterator::toFront()
Déplace l'itérateur à l'avant du conteneur (avant le premier élément).
Voir aussi toBack() et next().
const T &QHashIterator::value() const
Renvoie la valeur du dernier élément qui a été sauté à l'aide d'une des fonctions de traversée (next(), findNext()).
Voir aussi key().
QHashIterator<Key, T> &QHashIterator::operator=(const QHash<Key, T> &hash)
Permet à l'itérateur d'opérer sur hash. L'itérateur est placé à l'avant du hachage (avant le premier élément).
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.