const_iterator Class

class QMap::const_iterator

Die Klasse QMap::const_iterator bietet einen STL-ähnlichen Konst-Iterator für QMap. Mehr...

Öffentliche Typen

Öffentliche Funktionen

const_iterator()
const_iterator(const QMap<Key, T>::iterator &other)
const Key &key() const
const T &value() const
const T &operator*() const
QMap<Key, T>::const_iterator &operator++()
QMap<Key, T>::const_iterator operator++(int)
QMap<Key, T>::const_iterator &operator--()
QMap<Key, T>::const_iterator operator--(int)
const T *operator->() const
bool operator!=(const QMap<Key, T>::const_iterator &lhs, const QMap<Key, T>::const_iterator &rhs)
bool operator==(const QMap<Key, T>::const_iterator &lhs, const QMap<Key, T>::const_iterator &rhs)

Detaillierte Beschreibung

QMap<Schlüssel, T>::const_iterator ermöglicht die Iteration über eine QMap. Wenn Sie die QMap während der Iteration ändern möchten, müssen Sie stattdessen QMap::iterator verwenden. Es ist im Allgemeinen eine gute Praxis, QMap::const_iterator auch für eine nicht-konstante QMap zu verwenden, es sei denn, Sie müssen die QMap durch den Iterator ändern. Konstante Iteratoren sind etwas schneller und können die Lesbarkeit des Codes verbessern.

Der Standard-Konstruktor QMap::const_iterator erzeugt einen nicht initialisierten Iterator. Sie müssen ihn mit einer QMap Funktion wie QMap::cbegin(), QMap::cend() oder QMap::constFind() initialisieren, bevor Sie mit der Iteration beginnen können. Hier ist eine typische Schleife, die alle in einer Map gespeicherten (Schlüssel, Wert) Paare ausgibt:

QMap<QString, int> map;
map.insert("January", 1);
map.insert("February", 2);
...
map.insert("December", 12);

for (auto i = map.cbegin(), end = map.cend(); i != end; ++i)
    cout << qPrintable(i.key()) << ": " << i.value() << endl;

Hier ist ein Beispiel, das alle Elemente entfernt, deren Wert größer als 10 ist:

QMap<QString, int>::const_iterator i = map.cbegin();
while (i != map.cend()) {
    if (i.value() > 10)
        i = map.erase(i);
    else
        ++i;
}

Und hier das gleiche Verhalten mit erase_if()

erase_if(map, [](const QMap<QString, int>::iterator it) { return it.value() > 10; });

Im Gegensatz zu QHash, das seine Elemente in beliebiger Reihenfolge speichert, speichert QMap seine Elemente nach Schlüssel geordnet.

Mehrere Iteratoren können auf dieselbe Map angewendet werden. Wenn Sie der Map Elemente hinzufügen, bleiben die vorhandenen Iteratoren gültig. Wenn Sie Elemente aus der Map entfernen, werden Iteratoren, die auf die entfernten Elemente zeigen, zu Dangling-Iteratoren.

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 QMap::iterator, QMap::key_iterator, und QMap::const_key_value_iterator.

Dokumentation der Mitgliedstypen

[alias] const_iterator::iterator_category

Ein Synonym für std::bidirectional_iterator_tag, das anzeigt, dass dieser Iterator ein bidirektionaler Iterator ist.

Dokumentation der Mitgliedsfunktionen

const_iterator::const_iterator()

Konstruiert einen uninitialisierten Iterator.

Funktionen wie key(), value() und operator++() dürfen nicht mit einem nicht initialisierten Iterator aufgerufen werden. Verwenden Sie operator=(), um ihm einen Wert zuzuweisen, bevor Sie ihn verwenden.

Siehe auch QMap::constBegin() und QMap::constEnd().

const_iterator::const_iterator(const QMap<Key, T>::iterator &other)

Konstruiert eine Kopie von other.

const Key &const_iterator::key() const

Gibt den Schlüssel des aktuellen Elements zurück.

Siehe auch value().

const T &const_iterator::value() const

Gibt den Wert des aktuellen Elements zurück.

Siehe auch key() und operator*().

const T &const_iterator::operator*() const

Gibt den Wert des aktuellen Elements zurück.

Dasselbe wie value().

Siehe auch key().

QMap<Key, T>::const_iterator &const_iterator::operator++()

Der Präfix-Operator ++ (++i) verschiebt den Iterator zum nächsten Element in der Map und gibt einen Iterator zum neuen aktuellen Element zurück.

Der Aufruf dieser Funktion auf QMap::end() führt zu undefinierten Ergebnissen.

Siehe auch operator--().

QMap<Key, T>::const_iterator const_iterator::operator++(int)

Dies ist eine überladene Funktion.

Der Postfix-Operator ++ (i++) setzt den Iterator auf das nächste Element in der Map und gibt einen Iterator auf das zuvor aktuelle Element zurück.

QMap<Key, T>::const_iterator &const_iterator::operator--()

Der Präfix-Operator -- (--i) macht das vorhergehende Element aktuell und gibt einen Iterator zurück, der auf das neue aktuelle Element zeigt.

Der Aufruf dieser Funktion auf QMap::begin() führt zu undefinierten Ergebnissen.

Siehe auch operator++().

QMap<Key, T>::const_iterator const_iterator::operator--(int)

Dies ist eine überladene Funktion.

Der Postfix-Operator -- (i--) macht das vorangehende Element aktuell und gibt einen Iterator zurück, der auf das zuvor aktuelle Element zeigt.

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

Gibt einen Zeiger auf den Wert des aktuellen Elements zurück.

Siehe auch value().

Verwandte Nicht-Mitglieder

bool operator==(const QMap<Key, T>::const_iterator &lhs, const QMap<Key, T>::const_iterator &rhs)

Gibt true zurück, wenn lhs auf dasselbe Element wie der Iterator rhs zeigt; andernfalls wird false zurückgegeben.

Siehe auch operator!=().

bool operator!=(const QMap<Key, T>::const_iterator &lhs, const QMap<Key, T>::const_iterator &rhs)

Gibt true zurück, wenn lhs auf ein anderes Element als den Iterator rhs zeigt; andernfalls wird false zurückgegeben.

Siehe auch operator==().

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