const_iterator Class
class QSet::const_iteratorDie Klasse QSet::const_iterator bietet einen STL-ähnlichen Konst-Iterator für QSet. Mehr...
Öffentliche Typen
Öffentliche Funktionen
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 |
Detaillierte Beschreibung
QSet bietet sowohl Iteratoren im STL-Stil als auch Iteratoren im Java-Stil. Die Iteratoren im STL-Stil sind einfacher und umständlicher in der Anwendung; andererseits sind sie etwas schneller und haben für Entwickler, die die STL bereits kennen, den Vorteil der Vertrautheit.
QSet<Schlüssel, T>::const_iterator erlaubt es, über eine QSet zu iterieren. Wenn Sie die QSet während der Iteration verändern wollen, müssen Sie stattdessen QSet::iterator verwenden. Es ist im Allgemeinen eine gute Praxis, QSet::const_iterator auch für eine nicht-konstante QSet zu verwenden, es sei denn, Sie müssen die QSet durch den Iterator ändern. Konstante Iteratoren sind etwas schneller und können die Lesbarkeit des Codes verbessern.
Der Standard-Konstruktor QSet::const_iterator erzeugt einen nicht initialisierten Iterator. Sie müssen ihn mit einer Funktion wie QSet::begin(), QSet::end() oder QSet::insert() initialisieren, bevor Sie mit der Iteration beginnen können. Hier ist eine typische Schleife, die alle in einer Menge gespeicherten Elemente ausgibt:
QSet<QString> set = {"Januar", "Februar", ... "Dezember"};// i ist QSet<QString>::const_iteratorfor(auto i = set.cbegin(), end = set.cend(); i != end;++i) qDebug() << *i;
STL-artige Iteratoren können als Argumente für generic algorithms verwendet werden. Ein Beispiel: So finden Sie ein Element in der Menge mit dem qFind()-Algorithmus:
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;
Warnung: Iteratoren auf implizit gemeinsam genutzten Containern funktionieren nicht genau wie STL-Iteratoren. Sie sollten es vermeiden, einen Container zu kopieren, während Iteratoren auf diesem Container aktiv sind. Für weitere Informationen lesen Sie Implizite gemeinsame Nutzung Iterator Problem.
Siehe auch QSet::iterator und QSetIterator.
Dokumentation der Mitgliedstypen
const_iterator::iterator_category
Synonyme für std::bidirectional_iterator_tag, die anzeigen, dass diese Iteratoren bidirektionale Iteratoren sind.
Dokumentation der Mitgliedsfunktionen
const_iterator::const_iterator()
Konstruiert einen uninitialisierten Iterator.
Funktionen wie operator*() und operator++() sollten nicht mit einem nicht initialisierten Iterator aufgerufen werden. Verwenden Sie operator=(), um ihm einen Wert zuzuweisen, bevor Sie ihn verwenden.
Siehe auch QSet::begin() und QSet::end().
const_iterator::const_iterator(const QSet<T>::const_iterator &other)
Konstruiert eine Kopie von other.
QSet<T>::const_iterator &const_iterator::operator=(const QSet<T>::const_iterator &other)
Weist other diesem Iterator zu.
const T &const_iterator::operator*() const
Gibt einen Verweis auf das aktuelle Element zurück.
Siehe auch operator->().
const T *const_iterator::operator->() const
Gibt einen Zeiger auf das aktuelle Element zurück.
Siehe auch operator*().
bool const_iterator::operator==(const QSet<T>::const_iterator &other) const
Gibt true
zurück, wenn other auf dasselbe Element wie dieser Iterator zeigt; andernfalls wird false
zurückgegeben.
Siehe auch operator!=().
bool const_iterator::operator!=(const QSet<T>::const_iterator &other) const
Gibt true
zurück, wenn other auf ein anderes Element als diesen Iterator zeigt; andernfalls wird false
zurückgegeben.
Siehe auch operator==().
QSet<T>::const_iterator &const_iterator::operator++()
Der Präfix-Operator ++ (++it
) setzt den Iterator auf das nächste Element in der Menge und gibt einen Iterator auf das neue aktuelle Element zurück.
Der Aufruf dieser Funktion auf QSet<T>::constEnd() führt zu undefinierten Ergebnissen.
QSet<T>::const_iterator const_iterator::operator++(int)
Dies ist eine überladene Funktion.
Der Postfix-Operator ++ (it++
) setzt den Iterator auf das nächste Element in der Menge und gibt einen Iterator auf das zuvor aktuelle Element zurück.
const_iterator::const_iterator(const QSet<T>::iterator &other)
Dies ist eine überladene Funktion.
Konstruiert eine Kopie von other.
© 2025 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.