Sur cette page

QMap::const_iterator Class

class QMap::const_iterator

La classe QMap::const_iterator fournit un itérateur constant de style STL pour QMap. Plus d'informations...

Types publics

Fonctions publiques

const_iterator()
const_iterator(const QMap<Key, T>::iterator &other)
const Key &key() const
const T &value() const
const T &operator*() const
QMap<Key, T>::const_iterator &operator++()
QMap<Key, T>::const_iterator operator++(int)
QMap<Key, T>::const_iterator &operator--()
QMap<Key, T>::const_iterator operator--(int)
const T *operator->() const
bool operator!=(const QMap<Key, T>::const_iterator &lhs, const QMap<Key, T>::const_iterator &rhs)
bool operator==(const QMap<Key, T>::const_iterator &lhs, const QMap<Key, T>::const_iterator &rhs)

Description détaillée

QMap<Key, T>::const_iterator vous permet d'itérer sur un QMap. Si vous souhaitez modifier le QMap lors de l'itération, vous devez utiliser QMap::iterator à la place. Il est généralement conseillé d'utiliser QMap::const_iterator sur un QMap non-const également, à moins que vous n'ayez besoin de modifier le QMap par le biais de 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 QMap::const_iterator crée un itérateur non initialisé. Vous devez l'initialiser à l'aide d'une fonction QMap comme QMap::cbegin(), QMap::cend() ou QMap::constFind() avant de pouvoir commencer l'itération. Voici une boucle typique qui imprime toutes les paires (clé, valeur) stockées dans une carte :

QMap<QString, int> map;
map.insert("January", 1);
map.insert("February", 2);
//...
map.insert("December", 12);

for (auto i = map.cbegin(), end = map.cend(); i != end; ++i)
    cout << qPrintable(i.key()) << ": " << i.value() << endl;

Voici un exemple qui supprime tous les éléments dont la valeur est supérieure à 10 :

QMap<QString, int>::const_iterator i = map.cbegin();
while (i != map.cend()) {
    if (i.value() > 10)
        i = map.erase(i);
    else
        ++i;
}

Et voici le même comportement avec erase_if()

erase_if(map, [](const QMap<QString, int>::iterator it) { return it.value() > 10; });

Contrairement à QHash, qui stocke ses éléments dans un ordre arbitraire, QMap stocke ses éléments classés par clé.

Plusieurs itérateurs peuvent être utilisés sur la même carte. Si vous ajoutez des éléments à la carte, les itérateurs existants resteront valides. Si vous supprimez des éléments de la carte, les itérateurs qui pointent vers les éléments supprimés deviendront des itérateurs pendants.

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 Implicit sharing iterator problem.

Voir aussi QMap::iterator, QMap::key_iterator, et QMap::const_key_value_iterator.

Documentation sur les types de membres

[alias] const_iterator::iterator_category

Synonyme de std::bidirectional_iterator_tag indiquant que cet itérateur est un itérateur bidirectionnel.

Documentation des fonctions membres

const_iterator::const_iterator()

Construit un itérateur non initialisé.

Les fonctions telles que key(), value() et operator++() ne doivent pas être appelées sur un itérateur non initialisé. Utilisez operator=() pour lui attribuer une valeur avant de l'utiliser.

Voir également QMap::constBegin() et QMap::constEnd().

const_iterator::const_iterator(const QMap<Key, T>::iterator &other)

Construit une copie de other.

const Key &const_iterator::key() const

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

Voir aussi value().

const T &const_iterator::value() const

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

Voir aussi key() et operator*().

const T &const_iterator::operator*() const

Renvoie la valeur de l'élément courant.

Identique à value().

Voir aussi key().

QMap<Key, T>::const_iterator &const_iterator::operator++()

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

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

Voir aussi operator--().

QMap<Key, T>::const_iterator const_iterator::operator++(int)

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

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

QMap<Key, T>::const_iterator &const_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 QMap::begin() conduit à des résultats indéfinis.

Voir aussi operator++().

QMap<Key, T>::const_iterator const_iterator::operator--(int)

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

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

const T *const_iterator::operator->() const

Renvoie un pointeur sur la valeur de l'élément en cours.

Voir également value().

Non-membres apparentés

bool operator!=(const QMap<Key, T>::const_iterator &lhs, const QMap<Key, T>::const_iterator &rhs)

Renvoie true si lhs pointe vers un élément différent de l'itérateur rhs; sinon, renvoie false.

Voir aussi operator==().

bool operator==(const QMap<Key, T>::const_iterator &lhs, const QMap<Key, T>::const_iterator &rhs)

Renvoie true si lhs pointe sur le même élément que l'itérateur rhs; 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.