Sur cette page

QMap::const_iterator Class

class QMap::const_iterator

La classe ` QMap::const_iterator ` fournit un itérateur `const` de type STL pour ` QMap`. En savoir plus...

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 de parcourir une QMap. Si vous souhaitez modifier l’ QMap au fur et à mesure que vous la parcourez, vous devez utiliser QMap::iterator à la place. Il est généralement recommandé d’utiliser également QMap::const_iterator sur une QMap non-const, sauf si vous devez modifier l’ QMap 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 ` QMap::const_iterator ` crée un itérateur non initialisé. Vous devez l’initialiser à l’aide d’une fonction ` QMap ` telle que ` QMap::cbegin()`, ` QMap::cend()` ou ` QMap::constFind()` avant de pouvoir commencer l’itération. Voici une boucle typique qui affiche 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 pointant vers les éléments supprimés deviendront des itérateurs « pendants ».

Avertissement : les itérateurs sur des conteneurs partagés implicitement 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::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

[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 QMap::constBegin() et QMap::constEnd().

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

Crée une copie de other.

const Key &const_iterator::key() const

Renvoie la clé de l'élément actuel.

Voir aussi value().

const T &const_iterator::value() const

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

Voir également key() et operator*().

const T &const_iterator::operator*() const

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

Identique à value().

Voir aussi key().

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

L'opérateur préfixe « ++ » (++i) fait avancer l'itérateur vers 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 également ` operator--()`.

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

L'opérateur postfixe « ++ » (i++) fait avancer l'itérateur vers l'élément suivant de la carte et renvoie un itérateur vers l'élément qui était précédemment sélectionné.

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

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

L'opérateur préfixe « -- » (--i) définit l'élément précédent comme élément courant et renvoie un itérateur pointant vers ce nouvel élément courant.

L'appel de cette fonction sur ` QMap::begin()` donne lieu à des résultats indéfinis.

Voir également operator++().

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

L'opérateur postfixe « -- » (i--) désigne l'élément précédent comme élément actuel et renvoie un itérateur pointant vers l'élément qui était auparavant l'élément actuel.

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

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

Renvoie un pointeur vers la valeur de l'élément actuel.

Voir aussi value().

Éléments non membres associé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 également operator==().

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

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