QMultiHash::key_iterator Class
class QMultiHash::key_iteratorDie Klasse „ QMultiHash::key_iterator “ stellt einen const-Iterator im STL-Stil für Schlüssel vom Typ „ QMultiHash “ bereit. Mehr...
Öffentliche Funktionen
| key_iterator() | |
| QMultiHash<Key, T>::const_iterator | base() const |
| bool | operator!=(QMultiHash<Key, T>::key_iterator other) const |
| const Key & | operator*() const |
| QMultiHash<Key, T>::key_iterator & | operator++() |
| QMultiHash<Key, T>::key_iterator | operator++(int) |
| const Key * | operator->() const |
| bool | operator==(QMultiHash<Key, T>::key_iterator other) const |
Ausführliche Beschreibung
QMultiHash::key_iterator entspricht im Wesentlichen der Funktion „ QMultiHash::const_iterator “, mit dem Unterschied, dass die Operatoren *() und ->() einen Schlüssel anstelle eines Wertes zurückgeben.
In den meisten Fällen sollten „ QMultiHash::iterator “ und „ QMultiHash::const_iterator “ verwendet werden; Sie können den Schlüssel ganz einfach abrufen, indem Sie „ QMultiHash::iterator::key()“ aufrufen:
for (auto it = hash.cbegin(), end = hash.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 Interoperabilität zwischen den Schlüsseln von „ QMultiHash “ und Algorithmen im STL-Stil zu gewährleisten, benötigen wir einen Iterator, der statt auf einen Wert auf einen Schlüssel verweist. Mit „ QMultiHash::key_iterator “ können wir einen Algorithmus auf einen Bereich von Schlüsseln anwenden, ohne „ QMultiHash::keys()“ aufrufen zu müssen, was ineffizient ist, da es eine „ QMultiHash “-Iteration und eine Speicherzuweisung zur Erstellung eines temporären „ QList “ erfordert.
// Ineffizient, keys() ist aufwendig
QList<int> keys = hash.keys();
int numPrimes = std::count_if(keys.cbegin(), keys.cend(), isPrimeNumber);
qDeleteAll(hash2.keys());
// Effizient, keine Speicherzuweisung erforderlich
int primeNums = std::count_if(hash.keyBegin(), hash.keyEnd(), isPrimeNumber);
qDeleteAll(hash2.keyBegin(), hash2.keyEnd());QMultiHash::key_iterator ist „const“, kann der Schlüssel nicht geändert werden.
Der Standardkonstruktor von ` QMultiHash::key_iterator ` erstellt einen nicht initialisierten Iterator. Sie müssen ihn mithilfe einer Funktion vom Typ ` QMultiHash ` wie ` QMultiHash::keyBegin()` oder ` QMultiHash::keyEnd()` initialisieren.
Warnung: Iteratoren auf implizit gemeinsam genutzten Containern funktionieren nicht genau wie STL-Iteratoren. Sie sollten das Kopieren eines Containers vermeiden, solange Iteratoren auf diesem Container aktiv sind. Weitere Informationen finden Sie unter „Problem mit implizit gemeinsam genutzten Iteratoren“.
Siehe auch „ QMultiHash::const_iterator “ und „ QMultiHash::iterator “.
Dokumentation zu Mitgliedsfunktionen
[noexcept default] key_iterator::key_iterator()
Erstellt standardmäßig eine Instanz von „ key_iterator “.
[noexcept] QMultiHash<Key, T>::const_iterator key_iterator::base() const
Gibt das zugrunde liegende ` const_iterator ` zurück, auf dem dieses ` key_iterator ` basiert.
[noexcept] bool key_iterator::operator!=(QMultiHash<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==().
[noexcept] const Key &key_iterator::operator*() const
Gibt den Schlüssel des aktuellen Elements zurück.
[noexcept] QMultiHash<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 auf das neue aktuelle Element zurück.
Der Aufruf dieser Funktion für ` QMultiHash::keyEnd()` führt zu undefinierten Ergebnissen.
[noexcept] QMultiHash<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.
[noexcept] const Key *key_iterator::operator->() const
Gibt einen Zeiger auf den Schlüssel des aktuellen Elements zurück.
[noexcept] bool key_iterator::operator==(QMultiHash<Key, T>::key_iterator other) const
Gibt „ true “ zurück, wenn „ other “ auf dasselbe Element verweist wie dieser Iterator; 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.