const_iterator Class

class QMultiHash::const_iterator

Die Klasse QMultiHash::const_iterator bietet einen STL-ähnlichen Konst-Iterator für QMultiHash. 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

Detaillierte Beschreibung

QMultiHash<Schlüssel, T>::const_iterator ermöglicht die Iteration über eine QMultiHash. Wenn Sie die QMultiHash während der Iteration ändern möchten, müssen Sie stattdessen QMultiHash::iterator verwenden. Es ist im Allgemeinen eine gute Praxis, QMultiHash::const_iterator auch für eine nicht-konstante QMultiHash zu verwenden, es sei denn, Sie müssen die QMultiHash durch den Iterator ändern. Konstante Iteratoren sind etwas schneller und können die Lesbarkeit des Codes verbessern.

Der Standard-Konstruktor QMultiHash::const_iterator erzeugt 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 Paare (Schlüssel, Wert) 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 ordnet, speichert QMultiHash seine Elemente in beliebiger Reihenfolge. Die einzige Garantie besteht darin, dass Elemente, die denselben Schlüssel haben (weil sie mit QMultiHash eingefügt wurden), nacheinander erscheinen, und zwar vom zuletzt eingefügten bis zum zuletzt eingefügten Wert.

Mehrere Iteratoren können auf denselben Hash angewendet werden. Beachten Sie jedoch, dass jede Änderung, die direkt an QMultiHash vorgenommen wird (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() können alle Iteratoren, die auf den Hash zeigen, ungültig machen. Iteratoren bleiben garantiert nur so lange gültig, wie die QMultiHash ihre interne Hash-Tabelle nicht vergrößern/verkleinern muss. Die Verwendung eines Iterators nach einer Rehashing-Operation führt zu undefiniertem Verhalten.

Wenn Sie Iteratoren über einen langen Zeitraum aufbewahren müssen, empfehlen wir Ihnen, eher QMultiMap als 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. Für weitere Informationen lesen Sie Implizite gemeinsame Nutzung Iterator Problem.

Siehe auch QMultiHash::iterator, QMultiHash::key_iterator, und QMultiHash::const_key_value_iterator.

Dokumentation der Mitgliedsfunktionen

[constexpr noexcept] const_iterator::const_iterator()

Konstruiert einen uninitialisierten Iterator.

Funktionen wie key(), value() und operator++() dürfen nicht mit einem nicht initialisierten Iterator aufgerufen werden. Verwenden Sie operator=(), um ihm einen Wert zuzuweisen, bevor Sie ihn verwenden.

Siehe auch QMultiHash::constBegin() und QMultiHash::constEnd().

[noexcept] const_iterator::const_iterator(const QMultiHash<Key, T>::iterator &other)

Konstruiert 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 zeigt; andernfalls wird false zurückgegeben.

Siehe auch operator==().

[noexcept] T &const_iterator::operator*() const

Gibt den Wert des aktuellen Elements zurück.

Dasselbe wie 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 zum neuen aktuellen 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)

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 zuvor aktuelle Element zurück.

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