Auf dieser Seite

QSet::const_iterator Class

class QSet::const_iterator

Die Klasse „ QSet::const_iterator “ stellt einen Const-Iterator im STL-Stil für „ QSet “ bereit. 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

Ausführliche Beschreibung

QSet bietet sowohl Iteratoren im STL-Stil als auch Iteratoren im Java-Stil. Die Iteratoren im STL-Stil sind eher auf niedrigerer Ebene angesiedelt und umständlicher in der Anwendung; andererseits sind sie etwas schneller und bieten Entwicklern, die sich bereits mit STL auskennen, den Vorteil der Vertrautheit.

QSetMit `<Key, T>::const_iterator` können Sie über eine ` QSet` iterieren. Wenn Sie die ` QSet ` während der Iteration ändern möchten, müssen Sie stattdessen ` QSet::iterator ` verwenden. Es ist generell empfehlenswert, „ QSet::const_iterator “ auch bei einem nicht-konstanten „ QSet “ zu verwenden, es sei denn, Sie müssen die „ QSet “ über den Iterator ändern. Konstante Iteratoren sind etwas schneller und können die Lesbarkeit des Codes verbessern.

Der Standardkonstruktor von ` QSet::const_iterator ` erstellt 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 einem Set gespeicherten Elemente ausgibt:

QSet<QString> set = {"Januar", "Februar", /*...*/ "Dezember"};

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

Iteratoren im STL-Stil können als Argumente für ` generic algorithms` verwendet werden. Im Folgenden wird beispielsweise gezeigt, wie man mit dem Algorithmus `qFind()` ein Element in der Menge findet:

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. Weitere Informationen finden Sie unter „Problem mit Iteratoren bei impliziter gemeinsamen Nutzung“.

Siehe auch „ QSet::iterator “ und „ QSetIterator “.

Dokumentation zu Mitgliedstypen

const_iterator::iterator_category

Synonyme für `std::bidirectional_iterator_tag `, die darauf hinweisen, dass es sich bei diesen Iteratoren um bidirektionale Iteratoren handelt.

Dokumentation zu den Mitgliedsfunktionen

const_iterator::const_iterator()

Erstellt einen nicht initialisierten Iterator.

Funktionen wie operator*() und operator++() sollten nicht auf einem nicht initialisierten Iterator aufgerufen werden. Verwenden Sie operator=(), um ihm vor der Verwendung einen Wert zuzuweisen.

Siehe auch ` QSet::begin()` und ` QSet::end()`.

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

Erstellt eine Kopie von „ other “.

Dies ist eine überladene Funktion.

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

Erstellt eine Kopie von „ other “.

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

Gibt „ true “ zurück, wenn „ other “ auf ein anderes Element als diesen Iterator verweist; andernfalls wird „ false “ zurückgegeben.

Siehe auch operator==().

const T &const_iterator::operator*() const

Gibt eine Referenz auf das aktuelle Element zurück.

Siehe auch „ operator->()“.

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

Der Präfix-Operator ++ (++it) verschiebt den Iterator zum nächsten 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)

Der Postfix-Operator „++“ (it++) springt mit dem Iterator zum nächsten Element der Menge und gibt einen Iterator auf das zuvor aktuelle Element zurück.

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

Gibt einen Zeiger auf das aktuelle Element zurück.

Siehe auch „ operator*()“.

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

Weist diesem Iterator „ other “ zu.

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

Gibt „ true “ zurück, wenn „ other “ auf dasselbe Element wie dieser Iterator verweist; andernfalls wird „ false “ zurückgegeben.

Siehe auch 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.