QHashIterator Class
template <typename Key, typename T> class QHashIteratorLa classe `QHashIterator` fournit un itérateur `const` de type Java pour ` QHash ` et ` QMultiHash`. En savoir plus...
| En-tête : | #include <QHashIterator> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
- Liste de tous les membres, y compris les membres hérités
- QHashIterator fait partie des itérateurs de type Java dans Qt.
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 dispose à la fois d'itérateurs de type Java et d'itérateurs de type STL. Les itérateurs de type STL sont plus efficaces et sont à privilégier. Le paramètre de modèle Key spécifie le type de clé du hachage, et T spécifie le type de valeur.
QHashIterator<Key, T> vous permet de parcourir un QHash (ou un QMultiHash). Si vous souhaitez modifier le hachage au fur et à mesure de son parcours, utilisez plutôt QMutableHashIterator.
Le constructeur de QHashIterator prend un QHash en argument. Une fois instancié, l'itérateur se trouve tout au début du hash (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 du hachage et fait avancer l'itérateur. Les fonctions key() et value() renvoient respectivement la clé et la valeur du dernier élément qui a été sauté.
Contrairement aux itérateurs de type STL, les itérateurs de type Java pointent vers l'espace entre les éléments plutôt que directement vers les éléments eux-mêmes. Le premier appel à next() fait avancer l'itérateur vers 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 vers 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, celui-ci continuera à parcourir le hachage d’origine, en ignorant la copie modifiée.
Voir également QMutableHashIterator et QHash::const_iterator.
Documentation des fonctions membres
QHashIterator::QHashIterator(const QHash<Key, T> &hash)
Crée un itérateur permettant de parcourir hash. L'itérateur est positionné au début du hachage (avant le premier élément).
Voir également operator=().
bool QHashIterator::findNext(const T &value)
Recherche « value » à partir de la position actuelle de l'itérateur vers l'avant. Renvoie « true » si une paire (clé, valeur) dont la valeur est « value » est trouvée ; sinon, renvoie « 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é à la fin du conteneur.
bool QHashIterator::hasNext() const
Renvoie ` true ` s'il reste au moins un élément avant l'itérateur, c'est-à-dire si l'itérateur ne se trouve pas à la fin du conteneur ; sinon, renvoie ` false`.
Voir également next().
const Key &QHashIterator::key() const
Renvoie la clé du dernier élément qui a été ignoré à l'aide de l'une des fonctions de parcours (next(), findNext()).
Voir également value().
QHashIterator<Key, T>::Item QHashIterator::next()
Renvoie l'élément suivant et fait avancer l'itérateur d'une position.
Appelez la fonction ` key()` sur la valeur renvoyée pour obtenir la clé de l'élément, et la fonction ` value()` pour obtenir sa valeur.
L'appel de cette fonction sur un itérateur situé à la fin du conteneur donne lieu à des résultats indéfinis.
Voir également ` hasNext()` et ` peekNext()`.
QHashIterator<Key, T>::Item QHashIterator::peekNext() const
Renvoie l'élément suivant sans déplacer l'itérateur.
Appelez la fonction key() sur la valeur renvoyée pour obtenir la clé de l'élément, et la fonction value() pour obtenir sa valeur.
L'appel de cette fonction sur un itérateur situé à la fin du conteneur donne lieu à des résultats indéfinis.
Voir également ` hasNext()` et ` next()`.
void QHashIterator::toBack()
Déplace l'itérateur à la fin du conteneur (après le dernier élément).
Voir aussi toFront().
void QHashIterator::toFront()
Déplace l'itérateur au début du conteneur (avant le premier élément).
Voir également toBack() et next().
const T &QHashIterator::value() const
Renvoie la valeur du dernier élément qui a été ignoré à l'aide de l'une des fonctions de parcours (next(), findNext()).
Voir également key().
QHashIterator<Key, T> &QHashIterator::operator=(const QHash<Key, T> &hash)
Fait en sorte que l'itérateur opère sur hash. L'itérateur est positionné au début 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.