Auf dieser Seite

QMap::const_iterator Class

class QMap::const_iterator

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

Ausführliche Beschreibung

QMapMit <Key, T>::const_iterator können Sie eine Iteration über eine „ QMap “ durchführen. Wenn Sie die „ QMap “ während der Iteration ändern möchten, müssen Sie stattdessen „ QMap::iterator “ verwenden. Es empfiehlt sich generell, „ QMap::const_iterator “ auch für einen nicht-konstanten „ QMap “ zu verwenden, es sei denn, Sie müssen die „ QMap “ über den Iterator ändern. Konstante Iteratoren sind etwas schneller und können die Lesbarkeit des Codes verbessern.

Der Standardkonstruktor von ` QMap::const_iterator ` erstellt 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 einem 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üsseln sortiert.

Für dieselbe Map können mehrere Iteratoren verwendet werden. Wenn Sie Elemente zur Map hinzufügen, bleiben bestehende Iteratoren gültig. Wenn Sie Elemente aus der Map entfernen, werden Iteratoren, die auf die entfernten Elemente verweisen, zu „dangling iterators“.

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

Dokumentation zu Mitgliedstypen

[alias] const_iterator::iterator_category

Ein Synonym für „std::bidirectional_iterator_tag“, das angibt, dass es sich bei diesem Iterator um einen bidirektionalen Iterator handelt.

Dokumentation zu den Mitgliedsfunktionen

[default] const_iterator::const_iterator()

Erstellt einen nicht initialisierten Iterator.

Funktionen wie key(), value() und operator++() dürfen nicht für einen nicht initialisierten Iterator aufgerufen werden. Verwenden Sie operator=(), um ihm vor der Verwendung einen Wert zuzuweisen.

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

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

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

Entspricht der Funktion „ value()“.

Siehe auch ` key()`.

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

Der Präfixoperator „ ++ “ (++i) springt mit dem Iterator zum nächsten Element in der Map und gibt einen Iterator auf das neue aktuelle Element zurück.

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

Siehe auch ` operator--()`.

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

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

Dies ist eine überladene Funktion.

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

Der Präfixoperator „ -- “ (--i) macht das vorangehende Element zum aktuellen Element 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)

Der Postfix-Operator „ -- “ (i--) macht das vorangehende Element zum aktuellen Element und gibt einen Iterator zurück, der auf das zuvor aktuelle Element verweist.

Dies ist eine überladene Funktion.

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 ein anderes Element verweist als der Iterator „ rhs “; 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 dasselbe Element verweist wie der Iterator „ rhs “; 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.