Sur cette page

QSet::const_iterator Class

class QSet::const_iterator

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

Types publics

Fonctions publiques

const_iterator()
const_iterator(const QSet<T>::iterator &other)
const_iterator(const QSet<T>::const_iterator &other)
bool operator!=(const QSet<T>::const_iterator &other) const
const T &operator*() const
QSet<T>::const_iterator &operator++()
QSet<T>::const_iterator operator++(int)
const T *operator->() const
QSet<T>::const_iterator &operator=(const QSet<T>::const_iterator &other)
bool operator==(const QSet<T>::const_iterator &other) const

Description détaillée

QSet propose à la fois des itérateurs de type STL et des itérateurs de type Java. Les itérateurs de type STL sont de plus bas niveau et plus lourds à utiliser ; en revanche, ils sont légèrement plus rapides et, pour les développeurs qui connaissent déjà la STL, présentent l'avantage d'être familiers.

QSet<Key, T>::const_iterator vous permet de parcourir une QSet. Si vous souhaitez modifier l’ QSet au fur et à mesure que vous la parcourez, vous devez utiliser QSet::iterator à la place. Il est généralement recommandé d’utiliser QSet::const_iterator sur une QSet non const également, sauf si vous devez modifier l’ QSet e 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 ` QSet::const_iterator ` crée un itérateur non initialisé. Vous devez l’initialiser à l’aide d’une fonction telle que ` QSet::begin()`, ` QSet::end()` ou ` QSet::insert()` avant de pouvoir commencer l’itération. Voici une boucle typique qui affiche tous les éléments stockés dans un ensemble :

QSet<QString> set = {"Janvier", "Février", /*...*/ "Décembre"};

// i est de type QSet<QString>::const_iterator
for (auto i = set.cbegin(), end = set.cend(); i != end;++i)
    qDebug() << *i;

Les itérateurs de type STL peuvent être utilisés comme arguments de la fonction ` generic algorithms`. Par exemple, voici comment rechercher un élément dans l'ensemble à l'aide de l'algorithme `qFind()` :

QSet<QString> set;
//...
const auto predicate = [](const QString &s) { return s.compare("Jeanette", Qt::CaseInsensitive) == 0; };
QSet<QString>::const_iterator it = std::find_if(set.cbegin(), set.cend(), predicate);
if (it != set.constEnd())
    cout << "Found Jeanette" << endl;

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 QSet::iterator et QSetIterator.

Documentation sur les types de membres

const_iterator::iterator_category

Synonymes de ` std::bidirectional_iterator_tag ` indiquant que ces itérateurs sont des itérateurs bidirectionnels.

Documentation des fonctions membres

const_iterator::const_iterator()

Crée un itérateur non initialisé.

Les fonctions telles que operator*() 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 QSet::begin() et QSet::end().

const_iterator::const_iterator(const QSet<T>::iterator &other)

Crée une copie de other.

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

const_iterator::const_iterator(const QSet<T>::const_iterator &other)

Crée une copie de other.

bool const_iterator::operator!=(const QSet<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==().

const T &const_iterator::operator*() const

Renvoie une référence à l'élément actuel.

Voir aussi operator->().

QSet<T>::const_iterator &const_iterator::operator++()

L'opérateur préfixe ++ (++it) fait avancer l'itérateur vers l'élément suivant de l'ensemble et renvoie un itérateur vers le nouvel élément courant.

L'appel de cette fonction sur QSet<T>::constEnd() conduit à des résultats indéfinis.

QSet<T>::const_iterator const_iterator::operator++(int)

L'opérateur postfixe ++ (it++) fait avancer l'itérateur vers l'élément suivant de l'ensemble et renvoie un itérateur vers l'élément sur lequel il se trouvait précédemment.

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

Renvoie un pointeur vers l'élément actuel.

Voir aussi operator*().

QSet<T>::const_iterator &const_iterator::operator=(const QSet<T>::const_iterator &other)

Attribue la valeur « other » à cet itérateur.

bool const_iterator::operator==(const QSet<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.