QHash::const_iterator Class
class QHash::const_iteratorLa classe ` QHash::const_iterator ` fournit un itérateur `const` de type STL pour ` QHash`. En savoir plus...
Fonctions publiques
| const_iterator() | |
| const_iterator(const QHash<Key, T>::iterator &other) | |
| const Key & | key() const |
| const T & | value() const |
| bool | operator!=(const QHash<Key, T>::const_iterator &other) const |
| const T & | operator*() const |
| QHash<Key, T>::const_iterator & | operator++() |
| QHash<Key, T>::const_iterator | operator++(int) |
| const T * | operator->() const |
| bool | operator==(const QHash<Key, T>::const_iterator &other) const |
Description détaillée
QHash<Key, T>::const_iterator vous permet de parcourir une QHash. Si vous souhaitez modifier l'QHash au fur et à mesure que vous la parcourez, vous devez utiliser QHash::iterator à la place. Il est généralement recommandé d’utiliser QHash::const_iterator sur une QHash non const également, sauf si vous devez modifier l’ QHash via l’itérateur. Les itérateurs const sont légèrement plus rapides et peuvent améliorer la lisibilité du code.
Le constructeur par défaut de ` QHash::const_iterator ` crée un itérateur non initialisé. Vous devez l’initialiser à l’aide d’une fonction ` QHash ` telle que ` QHash::cbegin()`, ` QHash::cend()` ou ` QHash::constFind()` avant de pouvoir commencer l’itération. Voici une boucle typique qui affiche toutes les paires (clé, valeur) stockées dans un hachage :
QHash<QString, int> hash;
hash.insert("January", 1);
hash.insert("February", 2);
//...
hash.insert("December", 12);
for (auto i = hash.cbegin(), end = hash.cend(); i != end; ++i)
cout << qPrintable(i.key()) << ": " << i.value() << endl;Contrairement à ` QMap`, qui trie ses éléments par clé, ` QHash ` stocke ses éléments dans un ordre arbitraire. La seule garantie est que les éléments partageant la même clé (parce qu’ils ont été insérés à l’aide d’un ` QMultiHash`) apparaîtront consécutivement, de la valeur la plus récemment insérée à la moins récemment insérée.
Il est possible d’utiliser plusieurs itérateurs sur le même hachage. Cependant, sachez que toute modification effectuée directement sur l’ QHash (insertion ou suppression d’éléments) peut rendre les itérateurs invalides.
L’insertion d’éléments dans le hachage ou l’appel de méthodes telles que ` QHash::reserve()` ou ` QHash::squeeze()` peut invalider tous les itérateurs pointant vers le hachage. La validité des itérateurs n’est garantie que tant que l’ QHash n’a pas besoin d’agrandir ou de réduire sa table de hachage interne. L’utilisation d’un itérateur après une opération de réorganisation de la table de hachage entraînera un comportement indéfini.
Vous pouvez toutefois utiliser les itérateurs en toute sécurité pour supprimer des entrées du hachage à l'aide de la méthode QHash::erase(). Cette fonction peut être appelée sans risque pendant l'itération et n'affectera pas l'ordre des éléments dans le hachage.
Avertissement : les itérateurs sur les conteneurs implicitement partagés ne fonctionnent pas exactement comme les itérateurs STL. Vous devez éviter de copier un conteneur tant que des itérateurs sont actifs sur ce conteneur. Pour plus d’informations, consultez la section « Problème d’itérateur avec partage implicite ».
Voir également QHash::iterator, QHash::key_iterator et QHash::const_key_value_iterator.
Documentation sur les fonctions membres
[constexpr noexcept default] const_iterator::const_iterator()
Crée un itérateur non initialisé.
Les fonctions telles que key(), value() et l'opérateur++() ne doivent pas être appelées sur un itérateur non initialisé. Utilisez l'opérateur=() pour lui attribuer une valeur avant de l'utiliser.
Voir également QHash::constBegin() et QHash::constEnd().
[noexcept] const_iterator::const_iterator(const QHash<Key, T>::iterator &other)
Crée une copie de other.
[noexcept] const Key &const_iterator::key() const
Renvoie la clé de l'élément actuel.
Voir aussi value().
[noexcept] const T &const_iterator::value() const
Renvoie la valeur de l'élément actuel.
Voir également key() et operator*().
[noexcept] bool const_iterator::operator!=(const QHash<Key, T>::const_iterator &other) const
Renvoie ` true ` si ` other ` pointe vers un élément différent de cet itérateur ; sinon, renvoie ` false`.
Voir également operator==().
[noexcept] const T &const_iterator::operator*() const
Renvoie la valeur de l'élément actuel.
Equivalent à la fonction ` value()`.
Voir aussi ` key()`.
[noexcept] QHash<Key, T>::const_iterator &const_iterator::operator++()
L'opérateur préfixe ++ (++i) fait avancer l'itérateur vers l'élément suivant du hachage et renvoie un itérateur pointant vers le nouvel élément courant.
L'appel de cette fonction sur QHash::end() conduit à des résultats indéfinis.
[noexcept] QHash<Key, T>::const_iterator const_iterator::operator++(int)
L'opérateur postfixe ++ (i++) fait avancer l'itérateur vers l'élément suivant du hachage et renvoie un itérateur vers l'élément sur lequel il se trouvait précédemment.
Il s'agit d'une fonction surchargée.
[noexcept] const T *const_iterator::operator->() const
Renvoie un pointeur vers la valeur de l'élément actuel.
Voir aussi value().
[noexcept] bool const_iterator::operator==(const QHash<Key, T>::const_iterator &other) const
Renvoie ` true ` si ` other ` pointe vers le même élément que cet itérateur ; sinon, renvoie ` false`.
Voir également operator!=().
© 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.