Sur cette page

QSet::const_iterator Class

class QSet::const_iterator

La classe QSet::const_iterator fournit un itérateur constant de style STL pour QSet. 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 style STL et des itérateurs de style Java. Les itérateurs de style STL sont plus bas niveau et plus lourds à utiliser ; d'un autre côté, ils sont légèrement plus rapides et, pour les développeurs qui connaissent déjà STL, ils ont l'avantage de la familiarité.

QSet<Key, T>::const_iterator permet d'itérer sur un QSet. Si vous souhaitez modifier le QSet lors de l'itération, vous devez utiliser QSet::iterator à la place. Il est généralement conseillé d'utiliser QSet::const_iterator sur un QSet non-const également, à moins que vous n'ayez besoin de modifier le QSet 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 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 imprime tous les éléments stockés dans un ensemble :

QSet<QString> set = {"January", "February", /*...*/ "December"} ;// i est QSet<QString>::const_iteratorfor(auto i = set.cbegin(), end = set.cend() ; i != end ; ++i)    qDebug() << *i;

Les itérateurs de style STL peuvent être utilisés comme arguments de generic algorithms. Par exemple, voici comment trouver un élément dans l'ensemble en utilisant 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;

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 des itérateurs à partage implicite.

Voir aussi 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()

Construit 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 aussi QSet::begin() et QSet::end().

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

Construit une copie de other.

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

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

Construit 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 aussi operator==().

const T &const_iterator::operator*() const

Renvoie une référence à l'élément en cours.

Voir aussi operator->().

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

L'opérateur préfixe ++ (++it) fait passer l'itérateur à l'élément suivant de l'ensemble et renvoie un itérateur au 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 passer l'itérateur à l'élément suivant de l'ensemble et renvoie un itérateur à l'élément courant précédent.

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

Renvoie un pointeur sur l'élément courant.

Voir aussi operator*().

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

Attribue other à cet itérateur.

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