const_iterator Class

class QSet::const_iterator

Die 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.