QMultiHash::const_iterator Class
class QMultiHash::const_iteratorDie Klasse „ QMultiHash::const_iterator “ stellt einen const-Iterator im STL-Stil für „ QMultiHash “ bereit. Mehr…
Öffentliche Funktionen
| const_iterator() | |
| const_iterator(const QMultiHash<Key, T>::iterator &other) | |
| const Key & | key() const |
| T & | value() const |
| bool | operator!=(const QMultiHash<Key, T>::const_iterator &other) const |
| T & | operator*() const |
| QMultiHash<Key, T>::const_iterator & | operator++() |
| QMultiHash<Key, T>::const_iterator | operator++(int) |
| T * | operator->() const |
| bool | operator==(const QMultiHash<Key, T>::const_iterator &other) const |
Ausführliche Beschreibung
QMultiHashMit <Key, T>::const_iterator können Sie eine „ QMultiHash “ durchlaufen. Wenn Sie die „ QMultiHash “ während des Durchlaufs ändern möchten, müssen Sie stattdessen QMultiHash::iterator verwenden. Es empfiehlt sich generell, „ QMultiHash::const_iterator “ auch für einen nicht-konstanten „ QMultiHash “ zu verwenden, es sei denn, Sie müssen den „ QMultiHash “ über den Iterator ändern. Konstante Iteratoren sind etwas schneller und können die Lesbarkeit des Codes verbessern.
Der Standardkonstruktor von ` QMultiHash::const_iterator ` erstellt einen nicht initialisierten Iterator. Sie müssen ihn mit einer ` QMultiHash `-Funktion wie ` QMultiHash::cbegin()`, ` QMultiHash::cend()` oder ` QMultiHash::constFind()` initialisieren, bevor Sie mit der Iteration beginnen können. Hier ist eine typische Schleife, die alle in einem Hash gespeicherten (Schlüssel, Wert)-Paare ausgibt:
QHash<QString, int> hash;
hash.insert("January", 1);
hash.insert("February", 2);
//...
hash.insert("December", 12);
for (auto i = hash.cbegin(), end = hash.cend(); i != end; ++i)
cout << qPrintable(i.key()) << ": " << i.value() << endl;Im Gegensatz zu ` QMap`, das seine Elemente nach Schlüssel sortiert, speichert ` QMultiHash ` seine Elemente in beliebiger Reihenfolge. Die einzige Garantie besteht darin, dass Elemente, die denselben Schlüssel haben (weil sie mit einem ` QMultiHash` eingefügt wurden), nacheinander erscheinen – vom zuletzt bis zum am längsten zurückliegenden eingefügten Wert.
Für denselben Hash können mehrere Iteratoren verwendet werden. Beachten Sie jedoch, dass jede direkt am ` QMultiHash ` vorgenommene Änderung (Einfügen und Entfernen von Elementen) dazu führen kann, dass die Iteratoren ungültig werden.
Das Einfügen von Elementen in den Hash oder der Aufruf von Methoden wie QMultiHash::reserve() oder QMultiHash::squeeze() kann dazu führen, dass alle Iteratoren, die auf den Hash verweisen, ungültig werden. Iteratoren bleiben garantiert nur so lange gültig, wie der „ QMultiHash “ seine interne Hash-Tabelle nicht vergrößern oder verkleinern muss. Die Verwendung eines Iterators nach einer Neuhash-Operation führt zu undefiniertem Verhalten.
Wenn Sie Iteratoren über einen längeren Zeitraum beibehalten müssen, empfehlen wir Ihnen, „ QMultiMap “ anstelle von „ QMultiHash “ zu verwenden.
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. Weitere Informationen finden Sie unter „Problem mit Iteratoren bei impliziter gemeinsamen Nutzung“.
Siehe auch „ QMultiHash::iterator “, „ QMultiHash::key_iterator “ und „ QMultiHash::const_key_value_iterator “.
Dokumentation zu Mitgliedsfunktionen
[constexpr noexcept default] const_iterator::const_iterator()
Erstellt einen nicht initialisierten Iterator.
Funktionen wie ` key()`, ` value()` und der Operator `++()` dürfen nicht auf einem nicht initialisierten Iterator aufgerufen werden. Verwenden Sie den Operator `=()`, um ihm vor der Verwendung einen Wert zuzuweisen.
Siehe auch „ QMultiHash::constBegin()“ und „ QMultiHash::constEnd()“.
[noexcept] const_iterator::const_iterator(const QMultiHash<Key, T>::iterator &other)
Erstellt eine Kopie von „ other “.
[noexcept] const Key &const_iterator::key() const
Gibt den Schlüssel des aktuellen Elements zurück.
Siehe auch „ value()“.
[noexcept] T &const_iterator::value() const
Gibt den Wert des aktuellen Elements zurück.
Siehe auch „ key()“ und „ operator*()“.
[noexcept] bool const_iterator::operator!=(const QMultiHash<Key, T>::const_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] T &const_iterator::operator*() const
Gibt den Wert des aktuellen Elements zurück.
Entspricht der Funktion „ value()“.
Siehe auch ` key()`.
[noexcept] QMultiHash<Key, T>::const_iterator &const_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 auf ` QMultiHash::end()` führt zu undefinierten Ergebnissen.
[noexcept] QMultiHash<Key, T>::const_iterator const_iterator::operator++(int)
Der Postfix-Operator „++“ (i++) verschiebt den Iterator zum nächsten Element im Hash und gibt einen Iterator auf das zuvor aktuelle Element zurück.
Dies ist eine überladene Funktion.
[noexcept] T *const_iterator::operator->() const
Gibt einen Zeiger auf den Wert des aktuellen Elements zurück.
Siehe auch „ value()“.
[noexcept] bool const_iterator::operator==(const QMultiHash<Key, T>::const_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.