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