Auf dieser Seite

QMultiMap::iterator Class

class QMultiMap::iterator

Die Klasse „ QMultiMap::iterator “ stellt einen nicht-konstanten Iterator im STL-Stil für „ QMultiMap “ bereit. Mehr…

Öffentliche Typen

Öffentliche Funktionen

iterator()
const Key &key() const
T &value() const
T &operator*() const
QMultiMap<Key, T>::iterator &operator++()
QMultiMap<Key, T>::iterator operator++(int)
QMultiMap<Key, T>::iterator &operator--()
QMultiMap<Key, T>::iterator operator--(int)
T *operator->() const
bool operator!=(const QMultiMap<Key, T>::iterator &lhs, const QMultiMap<Key, T>::iterator &rhs)
bool operator==(const QMultiMap<Key, T>::iterator &lhs, const QMultiMap<Key, T>::iterator &rhs)

Ausführliche Beschreibung

QMultiMapMit <Key, T>::iterator können Sie eine „ QMultiMap “ durchlaufen und den unter einem bestimmten Schlüssel gespeicherten Wert (jedoch nicht den Schlüssel selbst) ändern. Wenn Sie eine Iteration über ein `const QMultiMap` durchführen möchten, sollten Sie ` QMultiMap::const_iterator` verwenden. Es empfiehlt sich generell, ` QMultiMap::const_iterator ` auch für ein nicht-konstantes ` QMultiMap ` zu verwenden, es sei denn, Sie müssen den ` QMultiMap ` über den Iterator ändern. Konstante Iteratoren sind etwas schneller und können die Lesbarkeit des Codes verbessern.

Der Standardkonstruktor von ` QMultiMap::iterator ` erstellt einen nicht initialisierten Iterator. Sie müssen ihn mit einer Funktion aus ` QMultiMap ` wie ` QMultiMap::begin()`, ` QMultiMap::end()` oder ` QMultiMap::find()` initialisieren, bevor Sie mit der Iteration beginnen können. Hier ist eine typische Schleife, die alle in einer Map gespeicherten (Schlüssel, Wert)-Paare ausgibt:

Im Gegensatz zu „ QMultiHash “, das seine Elemente in beliebiger Reihenfolge speichert, speichert „ QMultiMap “ seine Elemente nach Schlüsseln sortiert. Elemente mit demselben Schlüssel werden nacheinander angezeigt, beginnend mit dem zuletzt eingefügten Wert bis hin zum am längsten zurückliegenden.

Hier ist ein Beispiel, das jeden in der „ QMultiMap “ gespeicherten Wert um 2 erhöht:

for (auto i = multimap.begin(), end = multimap.end(); i != end; ++i)
    i.value() += 2;

Um Elemente aus einem „ QMultiMap “ zu entfernen, können Sie „ erase_if “ (QMultiMap<Key, T> &map, Predicate pred) verwenden:

erase_if(multimap, [](const QMultiMap<QString, int>::iterator it) { return it.value() > 10; });

Es können mehrere Iteratoren auf derselben Map verwendet werden. Wenn Sie Elemente zur Map hinzufügen, bleiben vorhandene Iteratoren gültig. Wenn Sie Elemente aus der Map entfernen, werden Iteratoren, die auf die entfernten Elemente verweisen, zu „dangling iterators“ (Iteratoren ohne Referenz).

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 „ QMultiMap::const_iterator “, „ QMultiMap::key_iterator “ und „ QMultiMap::key_value_iterator “.

Dokumentation zu Mitgliedstypen

[alias] iterator::iterator_category

Ein Synonym für „std::bidirectional_iterator_tag“, das angibt, dass es sich bei diesem Iterator um einen bidirektionalen Iterator handelt.

Dokumentation der Mitgliedsfunktionen

[default] iterator::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 ` QMultiMap::begin()` und ` QMultiMap::end()`.

const Key &iterator::key() const

Gibt den Schlüssel des aktuellen Elements als konstante Referenz zurück.

Es gibt keine direkte Möglichkeit, den Schlüssel eines Elements über einen Iterator zu ändern, dies ist jedoch durch den Aufruf von ` QMultiMap::erase()` gefolgt von ` QMultiMap::insert()` möglich.

Siehe auch ` value()`.

T &iterator::value() const

Gibt eine veränderbare Referenz auf den Wert des aktuellen Elements zurück.

Sie können den Wert eines Elements ändern, indem Sie `value()` auf der linken Seite einer Zuweisung verwenden, zum Beispiel:

if (i.key() == "Hello")
    i.value() = "Bonjour";

Siehe auch ` key()` und ` operator*()`.

T &iterator::operator*() const

Gibt eine veränderbare Referenz auf den Wert des aktuellen Elements zurück.

Entspricht „ value()“.

Siehe auch „ key()“.

QMultiMap<Key, T>::iterator &iterator::operator++()

Der Präfixoperator „ ++ “ (++i) verschiebt den Iterator zum nächsten Element in der Multi-Map und gibt einen Iterator auf das neue aktuelle Element zurück.

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

Siehe auch operator--().

QMultiMap<Key, T>::iterator iterator::operator++(int)

Der Postfix-Operator „ ++ “ (i++) verschiebt den Iterator zum nächsten Element in der Multi-Map und gibt einen Iterator auf das zuvor aktuelle Element zurück.

Dies ist eine überladene Funktion.

QMultiMap<Key, T>::iterator &iterator::operator--()

Der Präfixoperator „ -- “ (--i) macht das vorhergehende Element zum aktuellen Element und gibt einen Iterator zurück, der auf das neue aktuelle Element verweist.

Der Aufruf dieser Funktion auf ` QMultiMap::begin()` führt zu undefinierten Ergebnissen.

Siehe auch ` operator++()`.

QMultiMap<Key, T>::iterator iterator::operator--(int)

Der Postfix-Operator „ -- “ (i--) macht das vorangehende Element zum aktuellen Element und gibt einen Iterator zurück, der auf das zuvor aktuelle Element verweist.

Dies ist eine überladene Funktion.

T *iterator::operator->() const

Gibt einen Zeiger auf den Wert des aktuellen Elements zurück.

Siehe auch „ value()“.

Verwandte Nicht-Mitglieder

bool operator!=(const QMultiMap<Key, T>::iterator &lhs, const QMultiMap<Key, T>::iterator &rhs)

Gibt „ true “ zurück, wenn „ lhs “ auf ein anderes Element verweist als der Iterator „ rhs “; andernfalls wird „ false “ zurückgegeben.

Siehe auch operator==().

bool operator==(const QMultiMap<Key, T>::iterator &lhs, const QMultiMap<Key, T>::iterator &rhs)

Gibt „ true “ zurück, wenn „ lhs “ auf dasselbe Element verweist wie der Iterator „ rhs “; 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.