QMultiMapIterator Class
template <typename Key, typename T> class QMultiMapIteratorLa classe `QMultiMapIterator` fournit un itérateur `const` de type Java pour ` QMultiMap`. ` QMultiMap ` propose à la fois des itérateurs de type Java et des itérateurs de type STL. Les itérateurs de type STL sont plus efficaces et sont donc à privilégier. Le paramètre de modèle ` Key ` spécifie le type de clé de la carte, tandis que ` T ` spécifie le type de valeur. En savoir plus...
| En-tête : | #include <QMultiMapIterator> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
- Liste de tous les membres, y compris les membres hérités
- QMultiMapIterator fait partie des itérateurs de type Java dans Qt.
Fonctions publiques
| QMultiMapIterator(const QMultiMap<Key, T> &map) | |
| bool | findNext(const T &value) |
| bool | findPrevious(const T &value) |
| bool | hasNext() const |
| bool | hasPrevious() const |
| const Key & | key() const |
| QMultiMapIterator<Key, T>::Item | next() |
| QMultiMapIterator<Key, T>::Item | peekPrevious() const |
| QMultiMapIterator<Key, T>::Item | previous() |
| void | toBack() |
| void | toFront() |
| const T & | value() const |
| QMultiMapIterator<Key, T> & | operator=(const QMultiMap<Key, T> &map) |
Description détaillée
QMultiMapIterator<Key, T> vous permet de parcourir une carte de type ` QMultiMap`. Si vous souhaitez modifier la carte au fur et à mesure que vous la parcourez, utilisez plutôt ` QMutableMultiMapIterator `.
Le constructeur de QMultiMapIterator prend une ` QMultiMap ` comme argument. Une fois instancié, l'itérateur se trouve tout au début de la carte (avant le premier élément). Voici comment parcourir tous les éléments de manière séquentielle :
QMultiMap<int, QWidget*> multimap;
//...
QMultiMapIterator<int, QWidget*> i(multimap);
while (i.hasNext()) {
i.next();
qDebug() << i.key() << ": " << i.value();
}La fonction next() renvoie l'élément suivant de la carte et fait avancer l'itérateur. Les fonctions key() et value() renvoient respectivement la clé et la valeur du dernier élément qui a été sauté.
Contrairement aux itérateurs de type STL, les itérateurs de type Java pointent vers l’espace entre les éléments plutôt que directement vers les éléments eux-mêmes. Le premier appel à next() fait avancer l’itérateur vers la position située entre le premier et le deuxième élément, et renvoie le premier élément ; le deuxième appel à next() fait avancer l’itérateur vers la position située entre le deuxième et le troisième élément ; et ainsi de suite.
Voici comment parcourir les éléments dans l’ordre inverse :
QMultiMapIterator<int, QWidget*> i(multimap);
i.toBack();
while (i.hasPrevious()) {
i.previous();
qDebug() << i.key() << ": " << i.value();
}Si vous souhaitez rechercher toutes les occurrences d'une valeur particulière, utilisez la fonction « findNext() » ou « findPrevious() » dans une boucle. Par exemple :
QMultiMapIterator<int, QWidget*> i(multimap);
while (i.findNext(widget)) {
qDebug() << "Found widget " << widget << " under key "
<< i.key();
}Plusieurs itérateurs peuvent être utilisés sur la même carte. Si la carte est modifiée alors qu'un QMultiMapIterator est actif, celui-ci continuera à parcourir la carte d'origine, en ignorant la copie modifiée.
Voir aussi QMutableMultiMapIterator.
Documentation des fonctions membres
QMultiMapIterator::QMultiMapIterator(const QMultiMap<Key, T> &map)
Crée un itérateur permettant de parcourir map. L'itérateur est placé au début de la carte (avant le premier élément).
Voir également operator=().
bool QMultiMapIterator::findNext(const T &value)
Recherche value à partir de la position actuelle de l'itérateur vers l'avant. Renvoie true si une paire (clé, valeur) dont la valeur est value est trouvée ; sinon, renvoie false.
Après l’appel, si value a été trouvé, l’itérateur est positionné juste après l’élément correspondant ; sinon, l’itérateur est positionné à la fin du conteneur.
Voir aussi findPrevious().
bool QMultiMapIterator::findPrevious(const T &value)
Recherche « value » en partant de la position actuelle de l’itérateur et en remontant vers l’arrière. Renvoie « true » si une paire (clé, valeur) dont la valeur est « value » est trouvée ; sinon, renvoie « false ».
Après l’appel, si value a été trouvé, l’itérateur est positionné juste avant l’élément correspondant ; sinon, l’itérateur est positionné au début du conteneur.
Voir également findNext().
bool QMultiMapIterator::hasNext() const
Renvoie ` true ` s'il reste au moins un élément avant l'itérateur, c'est-à-dire si l'itérateur ne se trouve pas à la fin du conteneur ; sinon, renvoie ` false`.
Voir également hasPrevious() et next().
bool QMultiMapIterator::hasPrevious() const
Renvoie ` true ` s'il reste au moins un élément derrière l'itérateur, c'est-à-dire si l'itérateur ne se trouve pas en tête du conteneur ; sinon, renvoie ` false`.
Voir également hasNext() et previous().
const Key &QMultiMapIterator::key() const
Renvoie la clé du dernier élément qui a été sauté à l’aide de l’une des fonctions de parcours (next(), previous(), findNext(), findPrevious()).
Après un appel à next() ou findNext(), key() est équivalent à peekPrevious().key(). Après un appel à previous() ou findPrevious(), key() est équivalent à peekNext().key().
Voir également value().
QMultiMapIterator<Key, T>::Item QMultiMapIterator::next()
Renvoie l'élément suivant et fait avancer l'itérateur d'une position.
Appelez la fonction key() sur la valeur renvoyée pour obtenir la clé de l'élément, et la fonction value() pour obtenir sa valeur.
L'appel de cette fonction sur un itérateur situé à la fin du conteneur entraîne des résultats indéfinis.
Voir également hasNext(), peekNext() et previous().
QMultiMapIterator<Key, T>::Item QMultiMapIterator::peekPrevious() const
Renvoie l'élément précédent sans déplacer l'itérateur.
Appelez la fonction key() sur la valeur renvoyée pour obtenir la clé de l'élément, et la fonction value() pour obtenir sa valeur.
L'appel de cette fonction sur un itérateur situé au début du conteneur donne lieu à des résultats indéfinis.
Voir également hasPrevious(), previous() et peekNext().
QMultiMapIterator<Key, T>::Item QMultiMapIterator::previous()
Renvoie l'élément précédent et fait reculer l'itérateur d'une position.
Appelez la fonction ` key()` sur la valeur renvoyée pour obtenir la clé de l'élément, et ` value()` pour obtenir sa valeur.
L'appel de cette fonction sur un itérateur situé au début du conteneur produit des résultats indéfinis.
Voir également hasPrevious(), peekPrevious() et next().
void QMultiMapIterator::toBack()
Déplace l'itérateur à la fin du conteneur (après le dernier élément).
Voir également toFront() et previous().
void QMultiMapIterator::toFront()
Déplace l'itérateur au début du conteneur (avant le premier élément).
Voir également toBack() et next().
const T &QMultiMapIterator::value() const
Renvoie la valeur du dernier élément qui a été sauté à l'aide de l'une des fonctions de parcours (next(), previous(), findNext(), findPrevious()).
Après un appel à next() ou findNext(), value() est équivalent à peekPrevious().value(). Après un appel à previous() ou findPrevious(), value() est équivalent à peekNext().value().
Voir également key().
QMultiMapIterator<Key, T> &QMultiMapIterator::operator=(const QMultiMap<Key, T> &map)
Permet à l'itérateur d'opérer sur map. L'itérateur est placé au début de la carte (avant le premier élément).
© 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.