key_iterator Class

class QMultiMap::key_iterator

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

Öffentliche Funktionen

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

Detaillierte Beschreibung

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

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

for (auto it = multimap.cbegin(), end = multimap.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 QMultiMap und STL-artigen Algorithmen zu erreichen, benötigen wir einen Iterator, der auf einen Schlüssel statt auf einen Wert dereferenziert. Mit QMultiMap::key_iterator können wir einen Algorithmus auf einen Bereich von Schlüsseln anwenden, ohne QMultiMap::keys() aufrufen zu müssen, was ineffizient ist, da es eine QMultiMap Iteration und eine Speicherzuweisung kostet, um eine temporäre QList zu erstellen.

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

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

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

Der Standardkonstruktor QMultiMap::key_iterator erzeugt einen nicht initialisierten Iterator. Sie müssen ihn mit einer QMultiMap Funktion wie QMultiMap::keyBegin() oder QMultiMap::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 QMultiMap::const_iterator und QMultiMap::iterator.

Dokumentation der Mitgliedsfunktionen

QMultiMap<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!=(QMultiMap<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.

QMultiMap<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 QMultiMap::keyEnd() führt zu undefinierten Ergebnissen.

Siehe auch operator--().

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

QMultiMap<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 QMultiMap::keyBegin() führt zu undefinierten Ergebnissen.

Siehe auch operator++().

QMultiMap<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==(QMultiMap<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.