key_iterator Class

class QMap::key_iterator

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

Öffentliche Funktionen

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

Detaillierte Beschreibung

QMap::key_iterator ist im Wesentlichen dasselbe wie QMap::const_iterator mit dem Unterschied, dass operator*() und operator->() einen Schlüssel statt eines Wertes zurückgeben.

Für die meisten Verwendungszwecke sollten QMap::iterator und QMap::const_iterator verwendet werden, auf den Schlüssel kann man leicht durch den Aufruf von QMap::iterator::key() zugreifen:

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 eine Interoperabilität zwischen den Schlüsseln von QMap und STL-artigen Algorithmen zu erreichen, benötigen wir einen Iterator, der auf einen Schlüssel statt auf einen Wert dereferenziert. 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 kostet, um eine temporäre QList zu erstellen.

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

// Effizient, keine Speicherzuweisung erforderlichint numPrimes = std::count_if(map.keyBegin(), map.keyEnd(), isPrimeNumber);qDeleteAll(map2.keyBegin(), map2.keyEnd());

QMap::key_iterator const ist, ist es nicht möglich, den Schlüssel zu ändern.

Der Standardkonstruktor QMap::key_iterator erzeugt einen nicht initialisierten Iterator. Sie müssen ihn mit einer QMap Funktion wie QMap::keyBegin() oder QMap::keyEnd() initialisieren.

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::const_iterator und QMap::iterator.

Dokumentation der Mitgliedsfunktionen

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

Gibt die zugrunde liegende const_iterator zurück, auf der diese 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 zeigt; 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äfix-Operator ++ (++i) verschiebt den Iterator zum nächsten Element im Hash und gibt einen Iterator zum neuen aktuellen 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)

Dies ist eine überladene Funktion.

Der Postfix-Operator ++ (i++) setzt den Iterator auf das nächste Element im Hash und gibt einen Iterator auf das vorherige Element zurück.

QMap<Key, T>::key_iterator &key_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::keyBegin() führt zu undefinierten Ergebnissen.

Siehe auch operator++().

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

Dies ist eine überladene Funktion.

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

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