QSet::const_iterator Class
class QSet::const_iteratorLa 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.