QMultiMap::key_iterator Class
class QMultiMap::key_iteratorDie Klasse „ QMultiMap::key_iterator “ stellt einen Const-Iterator im STL-Stil für Schlüssel vom Typ „ QMultiMap “ bereit. Mehr...
Öffentliche Funktionen
| key_iterator() | |
| 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 |
Ausführliche Beschreibung
QMultiMap::key_iterator entspricht im Wesentlichen der Funktion „ QMultiMap::const_iterator “, mit dem Unterschied, dass die Operatoren *() und ->() einen Schlüssel anstelle eines Werts zurückgeben.
In den meisten Fällen sollten „ QMultiMap::iterator “ und „ QMultiMap::const_iterator “ verwendet werden; Sie können den Schlüssel ganz einfach abrufen, indem Sie „ QMultiMap::iterator::key()“ aufrufen:
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 die Interoperabilität zwischen den Schlüsseln von „ QMultiMap “ und Algorithmen im STL-Stil zu gewährleisten, benötigen wir einen Iterator, der statt eines Werts auf einen Schlüssel verweist. 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 zur Erstellung eines temporären „ QList “ erfordert.
// Ineffizient, keys() ist aufwendig
QList<int> keys = multimap.keys();
int numPrimes = std::count_if(multimap.cbegin(), multimap.cend(), isPrimeNumber);
qDeleteAll(multimap2.keys());
// Effizient, keine Speicherzuweisung erforderlich
int primeNums = std::count_if(multimap.keyBegin(), multimap.keyEnd(), isPrimeNumber);
qDeleteAll(multimap2.keyBegin(), multimap2.keyEnd());QMultiMap::key_iterator ist `const`, kann der Schlüssel nicht geändert werden.
Der Standardkonstruktor von ` QMultiMap::key_iterator ` erstellt einen nicht initialisierten Iterator. Sie müssen ihn mithilfe einer Funktion vom Typ ` QMultiMap ` wie ` QMultiMap::keyBegin()` oder ` QMultiMap::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 „ QMultiMap::const_iterator “ und „ QMultiMap::iterator “.
Dokumentation zu Mitgliedsfunktionen
[default] key_iterator::key_iterator()
Erstellt standardmäßig eine Instanz von ` key_iterator`.
QMultiMap<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!=(QMultiMap<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.
QMultiMap<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 ` QMultiMap::keyEnd()` führt zu undefinierten Ergebnissen.
Siehe auch ` operator--()`.
QMultiMap<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.
QMultiMap<Key, T>::key_iterator &key_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 verweist.
Der Aufruf dieser Funktion auf ` QMultiMap::keyBegin()` führt zu undefinierten Ergebnissen.
Siehe auch ` operator++()`.
QMultiMap<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==(QMultiMap<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.