QMap::key_iterator Class
class QMap::key_iteratorLa classe ` QMap::key_iterator ` fournit un itérateur `const` de type STL pour les clés de la base de données ` QMap `. En savoir plus...
Fonctions publiques
| key_iterator() | |
| QMap<Key, T>::const_iterator | base() const |
| bool | operator!=(QMap<Key, T>::key_iterator other) const |
| const Key & | operator*() const |
| QMap<Key, T>::key_iterator & | operator++() |
| QMap<Key, T>::key_iterator | operator++(int) |
| QMap<Key, T>::key_iterator & | operator--() |
| QMap<Key, T>::key_iterator | operator--(int) |
| const Key * | operator->() const |
| bool | operator==(QMap<Key, T>::key_iterator other) const |
Description détaillée
QMap::key_iterator est essentiellement identique à QMap::const_iterator, à la différence près que les opérateurs *() et ->() renvoient une clé au lieu d'une valeur.
Dans la plupart des cas, il est préférable d’utiliser QMap::iterator et QMap::const_iterator; vous pouvez facilement accéder à la clé en appelant QMap::iterator::key():
for (QMap<int, QString>::const_iterator it = map.cbegin(), end = map.cend(); it != end; ++it) {
cout << "The key: " << it.key() << endl;
cout << "The value: " << qPrintable(it.value()) << endl;
cout << "Also the value: " << qPrintable(*it) << endl;
}Cependant, pour assurer l’interopérabilité entre les clés d’ QMap et les algorithmes de type STL, nous avons besoin d’un itérateur qui déréférence vers une clé plutôt que vers une valeur. Avec QMap::key_iterator, nous pouvons appliquer un algorithme à une plage de clés sans avoir à appeler QMap::keys(), ce qui est inefficace car cela nécessite une itération QMap et une allocation de mémoire pour créer un QList temporaire.
// Inefficace, keys() est coûteux
QList<int> keys = map.keys();
int numPrimes = std::count_if(map.cbegin(), map.cend(), isPrimeNumber);
qDeleteAll(map2.keys());
// Efficace, aucune allocation de mémoire nécessaire
int primeNums = std::count_if(map.keyBegin(), map.keyEnd(), isPrimeNumber);
qDeleteAll(map2.keyBegin(), map2.keyEnd());QMap::key_iterator est une constante, il n'est pas possible de modifier la clé.
Le constructeur par défaut de ` QMap::key_iterator ` crée un itérateur non initialisé. Vous devez l’initialiser à l’aide d’une fonction ` QMap ` telle que ` QMap::keyBegin()` ou ` QMap::keyEnd()`.
Avertissement : les itérateurs sur des 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 « QMap::const_iterator » et « QMap::iterator ».
Documentation sur les fonctions membres
[default] key_iterator::key_iterator()
Construit par défaut une instance de ` key_iterator`.
QMap<Key, T>::const_iterator key_iterator::base() const
Renvoie l'const_iterator e sous-jacente sur laquelle repose cette key_iterator.
bool key_iterator::operator!=(QMap<Key, T>::key_iterator other) const
Renvoie ` true ` si ` other ` pointe vers un élément différent de cet itérateur ; sinon, renvoie ` false`.
Voir également operator==().
const Key &key_iterator::operator*() const
Renvoie la clé de l'élément actuel.
QMap<Key, T>::key_iterator &key_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 QMap::keyEnd() conduit à des résultats indéfinis.
Voir aussi operator--().
QMap<Key, T>::key_iterator key_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 précédent.
Il s'agit d'une fonction surchargée.
QMap<Key, T>::key_iterator &key_iterator::operator--()
L'opérateur préfixe « -- » (--i) désigne l'élément précédent comme élément courant et renvoie un itérateur pointant vers le nouvel élément courant.
L'appel de cette fonction sur ` QMap::keyBegin()` conduit à des résultats indéfinis.
Voir également operator++().
QMap<Key, T>::key_iterator key_iterator::operator--(int)
L'opérateur postfixe « -- » (i--) désigne l'élément précédent comme élément courant et renvoie un itérateur pointant vers l'élément précédent.
Il s'agit d'une fonction surchargée.
const Key *key_iterator::operator->() const
Renvoie un pointeur vers la clé de l'élément actuel.
bool key_iterator::operator==(QMap<Key, T>::key_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.