Auf dieser Seite

QHash::const_iterator Class

class QHash::const_iterator

Die Klasse „ QHash::const_iterator “ stellt einen const-Iterator im STL-Stil für „ QHash “ bereit. Mehr...

Öffentliche Funktionen

const_iterator()
const_iterator(const QHash<Key, T>::iterator &other)
const Key &key() const
const T &value() const
bool operator!=(const QHash<Key, T>::const_iterator &other) const
const T &operator*() const
QHash<Key, T>::const_iterator &operator++()
QHash<Key, T>::const_iterator operator++(int)
const T *operator->() const
bool operator==(const QHash<Key, T>::const_iterator &other) const

Ausführliche Beschreibung

QHashMit <Key, T>::const_iterator können Sie eine „ QHash “ durchlaufen. Wenn Sie die „ QHash “ während des Durchlaufs ändern möchten, müssen Sie stattdessen „ QHash::iterator “ verwenden. Es empfiehlt sich generell, „ QHash::const_iterator “ auch für nicht-konstante „ QHash “ zu verwenden, es sei denn, Sie müssen die „ QHash “ über den Iterator ändern. Konstante Iteratoren sind etwas schneller und können die Lesbarkeit des Codes verbessern.

Der Standardkonstruktor von ` QHash::const_iterator ` erstellt einen nicht initialisierten Iterator. Sie müssen ihn mit einer ` QHash `-Funktion wie ` QHash::cbegin()`, ` QHash::cend()` oder ` QHash::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 ` QHash ` seine Elemente in beliebiger Reihenfolge. Es ist lediglich gewährleistet, dass Elemente mit demselben Schlüssel (da sie mit einem ` QMultiHash` eingefügt wurden) nacheinander erscheinen, und zwar 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 ` QHash ` 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 ` QHash::reserve()` oder ` QHash::squeeze()` kann alle Iteratoren, die auf den Hash verweisen, ungültig machen. Iteratoren bleiben nur so lange garantiert gültig, wie der ` QHash ` seine interne Hash-Tabelle nicht vergrößern oder verkleinern muss. Die Verwendung eines Iterators nach einer Neuhash-Operation führt zu undefiniertem Verhalten.

Sie können Iteratoren jedoch sicher verwenden, um Einträge mithilfe der Methode „ QHash::erase()“ aus dem Hash zu entfernen. Diese Funktion kann während der Iteration sicher aufgerufen werden und hat keinen Einfluss auf die Reihenfolge der Elemente im Hash.

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 „ QHash::iterator “, „ QHash::key_iterator “ und „ QHash::const_key_value_iterator “.

Dokumentation zu Mitgliedsfunktionen

[constexpr noexcept default] const_iterator::const_iterator()

Erstellt einen nicht initialisierten Iterator.

Funktionen wie „ key()“, „ value()“ und „operator++()“ dürfen nicht für einen nicht initialisierten Iterator aufgerufen werden. Verwenden Sie „operator=()“, um ihm vor der Verwendung einen Wert zuzuweisen.

Siehe auch „ QHash::constBegin()“ und „ QHash::constEnd()“.

[noexcept] const_iterator::const_iterator(const QHash<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] const T &const_iterator::value() const

Gibt den Wert des aktuellen Elements zurück.

Siehe auch „ key()“ und „ operator*()“.

[noexcept] bool const_iterator::operator!=(const QHash<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] const T &const_iterator::operator*() const

Gibt den Wert des aktuellen Elements zurück.

Entspricht „ value()“.

Siehe auch „ key()“.

[noexcept] QHash<Key, T>::const_iterator &const_iterator::operator++()

Der Präfix-Operator ++ (++i) springt mit dem Iterator zum nächsten Element im Hash und gibt einen Iterator auf das neue aktuelle Element zurück.

Der Aufruf dieser Funktion mit QHash::end() führt zu undefinierten Ergebnissen.

[noexcept] QHash<Key, T>::const_iterator const_iterator::operator++(int)

Der Postfix-Operator ++ (i++) springt mit dem Iterator zum nächsten Element im Hash und gibt einen Iterator auf das zuvor aktuelle Element zurück.

Dies ist eine überladene Funktion.

[noexcept] const 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 QHash<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.