Sur cette page

QMultiMap::key_iterator Class

class QMultiMap::key_iterator

La classe QMultiMap::key_iterator fournit un itérateur constant de style STL pour les clés QMultiMap. Plus d'informations...

Fonctions publiques

QMultiMap<Key, T>::const_iterator base() const
bool operator!=(QMultiMap<Key, T>::key_iterator other) const
const Key &operator*() const
QMultiMap<Key, T>::key_iterator &operator++()
QMultiMap<Key, T>::key_iterator operator++(int)
QMultiMap<Key, T>::key_iterator &operator--()
QMultiMap<Key, T>::key_iterator operator--(int)
const Key *operator->() const
bool operator==(QMultiMap<Key, T>::key_iterator other) const

Description détaillée

QMultiMap::key_iterator est essentiellement identique à QMultiMap::const_iterator, à la différence que les fonctions operator*() et operator->() renvoient une clé au lieu d'une valeur.

Pour la plupart des utilisations, QMultiMap::iterator et QMultiMap::const_iterator devraient être utilisés, vous pouvez facilement accéder à la clé en appelant QMultiMap::iterator::key() :

for (auto it = multimap.cbegin(), end = multimap.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 de QMultiMap et les algorithmes de style STL, nous avons besoin d'un itérateur qui déréférence une clé au lieu d'une valeur. Avec QMultiMap::key_iterator, nous pouvons appliquer un algorithme à une plage de clés sans avoir à appeler QMultiMap::keys(), ce qui est inefficace car la création d'un QList temporaire coûte une itération QMultiMap et une allocation de mémoire.

//  Inefficace, keys() est coûteuxQList<int> keys = multimap.keys() ;int numPrimes = std::count_if(multimap.cbegin(), multimap.cend(), isPrimeNumber) ;qDeleteAll(multimap2.keys());

// Efficace, aucune allocation de mémoire n'est nécessaireint primeNums = std::count_if(multimap.keyBegin(), multimap.keyEnd(), isPrimeNumber) ;qDeleteAll(multimap2.keyBegin(), multimap2.keyEnd());

QMultiMap::key_iterator est constant, il n'est pas possible de modifier la clé.

Le constructeur par défaut QMultiMap::key_iterator crée un itérateur non initialisé. Vous devez l'initialiser en utilisant une fonction QMultiMap comme QMultiMap::keyBegin() ou QMultiMap::keyEnd().

Attention : 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 lorsque des itérateurs sont actifs sur ce conteneur. Pour plus d'informations, lisez le problème du partage implicite des itérateurs.

Voir aussi QMultiMap::const_iterator et QMultiMap::iterator.

Documentation sur les fonctions membres

QMultiMap<Key, T>::const_iterator key_iterator::base() const

Retourne le site sous-jacent const_iterator sur lequel ce site key_iterator est basé.

bool key_iterator::operator!=(QMultiMap<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 aussi operator==().

const Key &key_iterator::operator*() const

Renvoie la clé de l'élément en cours.

QMultiMap<Key, T>::key_iterator &key_iterator::operator++()

L'opérateur préfixe ++ (++i) fait passer l'itérateur à l'élément suivant du hachage et renvoie un itérateur vers le nouvel élément courant.

L'appel de cette fonction sur QMultiMap::keyEnd() conduit à des résultats indéfinis.

Voir aussi operator--().

QMultiMap<Key, T>::key_iterator key_iterator::operator++(int)

L'opérateur postfixe ++ (i++) fait passer l'itérateur à l'élément suivant du hachage et renvoie un itérateur à l'élément précédent.

Il s'agit d'une fonction surchargée.

QMultiMap<Key, T>::key_iterator &key_iterator::operator--()

L'opérateur préfixe -- (--i) rend l'élément précédent courant et renvoie un itérateur pointant vers le nouvel élément courant.

L'appel de cette fonction sur QMultiMap::keyBegin() conduit à des résultats indéfinis.

Voir aussi operator++().

QMultiMap<Key, T>::key_iterator key_iterator::operator--(int)

L'opérateur postfixe -- (i--) rend l'élément précédent actuel 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 sur la clé de l'élément en cours.

bool key_iterator::operator==(QMultiMap<Key, T>::key_iterator other) const

Renvoie true si other pointe sur le même élément que cet itérateur ; sinon, renvoie false.

Voir aussi 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.