Auf dieser Seite

QMap::key_iterator Class

class QMap::key_iterator

Die Klasse „ QMap::key_iterator “ stellt einen Const-Iterator im STL-Stil für Schlüssel vom Typ „ QMap “ bereit. Mehr...

Öffentliche Funktionen

key_iterator()
QMap<Key, T>::const_iterator base() const
bool operator!=(QMap<Key, T>::key_iterator other) const
const Key &operator*() const
QMap<Key, T>::key_iterator &operator++()
QMap<Key, T>::key_iterator operator++(int)
QMap<Key, T>::key_iterator &operator--()
QMap<Key, T>::key_iterator operator--(int)
const Key *operator->() const
bool operator==(QMap<Key, T>::key_iterator other) const

Ausführliche Beschreibung

QMap::key_iterator entspricht im Wesentlichen der Funktion „ QMap::const_iterator “, mit dem Unterschied, dass die Operatoren *() und ->() einen Schlüssel anstelle eines Werts zurückgeben.

In den meisten Fällen sollten „ QMap::iterator “ und „ QMap::const_iterator “ verwendet werden; Sie können ganz einfach auf den Schlüssel zugreifen, indem Sie „ QMap::iterator::key()“ aufrufen:

for (QMap<int, QString>::const_iterator it = map.cbegin(), end = map.cend(); it != end; ++it) {
    cout << "The key: " << it.key() << endl;
    cout << "The value: " << qPrintable(it.value()) << endl;
    cout << "Also the value: " << qPrintable(*it) << endl;
}

Um jedoch die Interoperabilität zwischen den Schlüsseln von „ QMap “ und Algorithmen im STL-Stil zu gewährleisten, benötigen wir einen Iterator, der auf einen Schlüssel statt auf einen Wert verweist. Mit „ QMap::key_iterator “ können wir einen Algorithmus auf einen Bereich von Schlüsseln anwenden, ohne „ QMap::keys()“ aufrufen zu müssen, was ineffizient ist, da es eine „ QMap “-Iteration und eine Speicherzuweisung zur Erstellung eines temporären „ QList “ erfordert.

// Ineffizient, keys() ist aufwendig
QList<int> keys = map.keys();
int numPrimes = std::count_if(map.cbegin(), map.cend(), isPrimeNumber);
qDeleteAll(map2.keys());

// Effizient, keine Speicherzuweisung erforderlich
int primeNums = std::count_if(map.keyBegin(), map.keyEnd(), isPrimeNumber);
qDeleteAll(map2.keyBegin(), map2.keyEnd());

QMap::key_iterator ist „const“, kann der Schlüssel nicht geändert werden.

Der Standardkonstruktor von ` QMap::key_iterator ` erstellt einen nicht initialisierten Iterator. Sie müssen ihn mithilfe einer Funktion vom Typ „ QMap “ wie ` QMap::keyBegin()` oder ` QMap::keyEnd()` initialisieren.

Warnung: Iteratoren auf implizit gemeinsam genutzten Containern verhalten sich 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::const_iterator “ und „ QMap::iterator “.

Dokumentation zu Mitgliedsfunktionen

[default] key_iterator::key_iterator()

Erstellt standardmäßig eine Instanz von ` key_iterator`.

QMap<Key, T>::const_iterator key_iterator::base() const

Gibt das zugrunde liegende „ const_iterator “ zurück, auf dem dieses „ key_iterator “ basiert.

bool key_iterator::operator!=(QMap<Key, T>::key_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 Key &key_iterator::operator*() const

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

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

Der Präfixoperator „ ++ “ (++i) verschiebt den Iterator zum nächsten Element im Hash und gibt einen Iterator auf das neue aktuelle Element zurück.

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

Siehe auch ` operator--()`.

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

Der Postfix-Operator „ ++ “ (i++) verschiebt den Iterator zum nächsten Element im Hash und gibt einen Iterator zum vorherigen Element zurück.

Dies ist eine überladene Funktion.

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

Der Präfixoperator „ -- “ (--i) macht das vorhergehende Element zum aktuellen Element und gibt einen Iterator zurück, der auf das neue aktuelle Element verweist.

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

Siehe auch ` operator++()`.

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

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

Dies ist eine überladene Funktion.

const Key *key_iterator::operator->() const

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

bool key_iterator::operator==(QMap<Key, T>::key_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.