QLinkedList Class
template <typename T> class QLinkedListLa classe QLinkedList est une classe modèle qui permet de créer des listes chaînées. En savoir plus…
| En-tête : | #include <QLinkedList> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
| qmake : | QT += core5compat |
- Liste de tous les membres, y compris les membres hérités
- QLinkedList fait partie des classes partagées implicitement.
Remarque : toutes les fonctions de cette classe sont réentrantes.
Types publics
| class | const_iterator |
| class | iterator |
| ConstIterator | |
| Iterator | |
| const_pointer | |
| const_reference | |
| const_reverse_iterator | |
| difference_type | |
| pointer | |
| reference | |
| reverse_iterator | |
| size_type | |
| value_type |
Fonctions publiques
| QLinkedList() | |
| QLinkedList(std::initializer_list<T> list) | |
| QLinkedList(InputIterator first, InputIterator last) | |
| QLinkedList(const QLinkedList<T> &other) | |
| QLinkedList(QLinkedList<T> &&other) | |
| ~QLinkedList() | |
| void | append(const T &value) |
| T & | back() |
| const T & | back() const |
| QLinkedList<T>::iterator | begin() |
| QLinkedList<T>::const_iterator | begin() const |
| QLinkedList<T>::const_iterator | cbegin() const |
| QLinkedList<T>::const_iterator | cend() const |
| void | clear() |
| QLinkedList<T>::const_iterator | constBegin() const |
| QLinkedList<T>::const_iterator | constEnd() const |
| bool | contains(const T &value) const |
| int | count() const |
| int | count(const T &value) const |
| QLinkedList<T>::const_reverse_iterator | crbegin() const |
| QLinkedList<T>::const_reverse_iterator | crend() const |
| bool | empty() const |
| QLinkedList<T>::iterator | end() |
| QLinkedList<T>::const_iterator | end() const |
| bool | endsWith(const T &value) const |
| QLinkedList<T>::iterator | erase(QLinkedList<T>::iterator pos) |
| QLinkedList<T>::iterator | erase(QLinkedList<T>::iterator begin, QLinkedList<T>::iterator end) |
| T & | first() |
| const T & | first() const |
| T & | front() |
| const T & | front() const |
| QLinkedList<T>::iterator | insert(QLinkedList<T>::iterator before, const T &value) |
| bool | isEmpty() const |
| T & | last() |
| const T & | last() const |
| void | pop_back() |
| void | pop_front() |
| void | prepend(const T &value) |
| void | push_back(const T &value) |
| void | push_front(const T &value) |
| QLinkedList<T>::reverse_iterator | rbegin() |
| QLinkedList<T>::const_reverse_iterator | rbegin() const |
| int | removeAll(const T &value) |
| void | removeFirst() |
| void | removeLast() |
| bool | removeOne(const T &value) |
| QLinkedList<T>::reverse_iterator | rend() |
| QLinkedList<T>::const_reverse_iterator | rend() const |
| int | size() const |
| bool | startsWith(const T &value) const |
| void | swap(QLinkedList<T> &other) |
| T | takeFirst() |
| T | takeLast() |
| std::list<T> | toStdList() const |
| bool | operator!=(const QLinkedList<T> &other) const |
| QLinkedList<T> | operator+(const QLinkedList<T> &other) const |
| QLinkedList<T> & | operator+=(const QLinkedList<T> &other) |
| QLinkedList<T> & | operator+=(const T &value) |
| QLinkedList<T> & | operator<<(const QLinkedList<T> &other) |
| QLinkedList<T> & | operator<<(const T &value) |
| QLinkedList<T> & | operator=(const QLinkedList<T> &other) |
| bool | operator==(const QLinkedList<T> &other) const |
Membres publics statiques
| QLinkedList<T> | fromStdList(const std::list<T> &list) |
Éléments non membres associés
| QDataStreamIfHasOStreamOperatorsContainer<QLinkedList<T>, T> | operator<<(QDataStream &out, const QLinkedList<T> &list) |
| QDataStreamIfHasIStreamOperatorsContainer<QLinkedList<T>, T> | operator>>(QDataStream &in, QLinkedList<T> &list) |
Description détaillée
QLinkedList<T> est l'une des classes de conteneurs génériques de Qt, où T correspond au type des éléments stockés dans la liste. Elle stocke une liste de valeurs et permet un accès par itérateur ainsi que des insertions et des suppressions en temps constant.
QList<T> et QLinkedList<T> offrent des fonctionnalités similaires. En voici un aperçu :
- Dans la plupart des cas, QList est la classe qu'il convient d'utiliser. Son API basée sur des index est plus pratique que celle de QLinkedList, basée sur des itérateurs. Ses éléments occupent des emplacements mémoire adjacents. Elle génère également moins de code dans votre exécutable.
- Si vous avez besoin d’une véritable liste chaînée, garantissant des insertions en temps constant au milieu de la liste et des itérateurs vers les éléments plutôt que vers des index, utilisez QLinkedList.
Voici un exemple de `QLinkedList` stockant des entiers et de `QLinkedList` stockant des valeurs de type ` QTime ` :
QLinkedList<int> integerList;
QLinkedList<QTime> timeList;QLinkedList stocke une liste d'éléments. Le constructeur par défaut crée une liste vide. Pour insérer des éléments dans la liste, vous pouvez utiliser l'opérateur <<() :
QLinkedList<QString> list;
list << "one" << "two" << "three";
// list: ["one", "two", "three"]Si vous souhaitez récupérer le premier ou le dernier élément d’une liste chaînée, utilisez ` first()` ou ` last()`. Si vous souhaitez supprimer un élément à l’une ou l’autre extrémité de la liste, utilisez ` removeFirst()` ou ` removeLast()`. Si vous souhaitez supprimer toutes les occurrences d’une valeur donnée dans la liste, utilisez ` removeAll()`.
Une opération courante consiste à supprimer le premier ou le dernier élément de la liste et à effectuer une action sur celui-ci. Pour cela, QLinkedList fournit les méthodes takeFirst() et takeLast(). Voici une boucle qui supprime les éléments d'une liste un par un et appelle la méthode delete sur chacun d'entre eux :
QLinkedList<QWidget *> list;
...
while (!list.isEmpty())
delete list.takeFirst();Le type de valeur de QLinkedList doit être un type de données assignable. Cela couvre la plupart des types de données couramment utilisés, mais le compilateur ne vous permettra pas, par exemple, de stocker un QWidget en tant que valeur ; vous devrez plutôt stocker un QWidget *. Quelques fonctions ont des exigences supplémentaires ; par exemple, les méthodes ` contains()` et ` removeAll()` exigent que le type de valeur prenne en charge ` operator==()`. Ces exigences sont documentées pour chaque fonction.
Si vous souhaitez insérer, modifier ou supprimer des éléments au milieu de la liste, vous devez utiliser un itérateur. QLinkedList fournit à la fois des itérateurs de type Java (QLinkedListIterator et QMutableLinkedListIterator) et des itérateurs de type STL (QLinkedList::const_iterator et QLinkedList::iterator). Reportez-vous à la documentation de ces classes pour plus de détails.
Voir également QLinkedListIterator, QMutableLinkedListIterator et QList.
Documentation sur les types de membres
QLinkedList::ConstIterator
Synonyme de « QLinkedList::const_iterator » dans le style Qt.
QLinkedList::Iterator
Synonyme de « QLinkedList::iterator » dans le style Qt.
QLinkedList::const_pointer
Définition de type pour const T *. Fournie à des fins de compatibilité avec la STL.
QLinkedList::const_reference
Définition de type pour `const T &`. Fournie à des fins de compatibilité avec la STL.
QLinkedList::const_reverse_iterator
Le typedef QLinkedList::const_reverse_iterator fournit un itérateur inversé constant de type STL pour QLinkedList.
Il s'agit simplement d'un typedef pour std::reverse_iterator<QLinkedList::const_iterator>.
Avertissement : les itérateurs sur des conteneurs partagés implicitement ne fonctionnent pas exactement comme les itérateurs STL. Vous devez éviter de copier un conteneur tant que des itérateurs sont actifs sur ce conteneur. Pour plus d’informations, consultez la section « Problème d’itérateur avec partage implicite ».
Voir également ` QLinkedList::rbegin()`, ` QLinkedList::rend()`, ` QLinkedList::reverse_iterator` et ` QLinkedList::const_iterator`.
QLinkedList::difference_type
Définition de type pour ptrdiff_t. Fournie à des fins de compatibilité avec la STL.
QLinkedList::pointer
Définition de type pour T*. Fournie à des fins de compatibilité avec la STL.
QLinkedList::reference
Définition de type pour T &. Fournie à des fins de compatibilité avec la STL.
QLinkedList::reverse_iterator
Le typedef QLinkedList::reverse_iterator fournit un itérateur inversé non-const de type STL pour QLinkedList.
Il s'agit simplement d'un typedef pour ` std::reverse_iterator<QLinkedList::iterator>`.
Avertissement : les itérateurs sur des conteneurs à partage implicite ne fonctionnent pas exactement comme les itérateurs STL. Vous devez éviter de copier un conteneur tant que des itérateurs sont actifs sur ce conteneur. Pour plus d’informations, consultez la section « Problème d’itérateur avec partage implicite ».
Voir également QLinkedList::rbegin(), QLinkedList::rend(), QLinkedList::const_reverse_iterator et QLinkedList::iterator.
QLinkedList::size_type
Définition de type pour `int`. Fournie à des fins de compatibilité avec la STL.
QLinkedList::value_type
Définition de type pour T. Fournie à des fins de compatibilité avec la STL.
Documentation des fonctions membres
[noexcept] QLinkedList::QLinkedList()
Crée une liste vide.
QLinkedList::QLinkedList(std::initializer_list<T> list)
Crée une liste à partir de la liste d'initialisation std::initializer_list spécifiée par list.
Ce constructeur n'est disponible que si le compilateur prend en charge les listes d'initialisation C++11.
template <typename InputIterator, QtPrivate::IfIsInputIterator<InputIterator> = true> QLinkedList::QLinkedList(InputIterator first, InputIterator last)
Crée une liste contenant les éléments de la plage de l'itérateur [first, last).
Le type de valeur de InputIterator doit être convertible en T.
QLinkedList::QLinkedList(const QLinkedList<T> &other)
Crée une copie de other.
Cette opération s'effectue en temps constant, car QLinkedList est implicitement partagée. Cela rend très rapide le retour d'une QLinkedList depuis une fonction. Si une instance partagée est modifiée, elle sera copiée (copie à l'écriture), ce qui prend un temps linéaire.
Voir également operator=().
[noexcept] QLinkedList::QLinkedList(QLinkedList<T> &&other)
La fonction `move` crée une instance de `QLinkedList` en la faisant pointer vers le même objet que celui vers lequel pointait ` other `.
QLinkedList::~QLinkedList()
Supprime la liste. Les références aux valeurs de la liste, ainsi que tous les itérateurs sur cette liste, deviennent invalides.
void QLinkedList::append(const T &value)
Insère « value » à la fin de la liste.
Exemple :
QLinkedList<QString> list;
list.append("one");
list.append("two");
list.append("three");
// list: ["one", "two", "three"]Cela revient à utiliser list.insert(end(), value).
Voir également operator<<(), prepend() et insert().
T &QLinkedList::back()
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à ` last()`.
const T &QLinkedList::back() const
Il s'agit d'une fonction surchargée.
QLinkedList<T>::iterator QLinkedList::begin()
Renvoie un itérateur de type STL pointant vers le premier élément de la liste.
Voir également constBegin() et end().
[noexcept] QLinkedList<T>::const_iterator QLinkedList::begin() const
Il s'agit d'une fonction surchargée.
[noexcept] QLinkedList<T>::const_iterator QLinkedList::cbegin() const
Renvoie un itérateur constant de type STL pointant vers le premier élément de la liste.
Voir également begin() et cend().
[noexcept] QLinkedList<T>::const_iterator QLinkedList::cend() const
Renvoie un itérateur de type STL (const) pointant vers l'élément imaginaire situé après le dernier élément de la liste.
Voir également ` cbegin()` et ` end()`.
void QLinkedList::clear()
Supprime tous les éléments de la liste.
Voir aussi removeAll().
[noexcept] QLinkedList<T>::const_iterator QLinkedList::constBegin() const
Renvoie un itérateur const de type STL pointant vers le premier élément de la liste.
Voir également begin() et constEnd().
[noexcept] QLinkedList<T>::const_iterator QLinkedList::constEnd() const
Renvoie un itérateur de type STL (const) pointant vers l'élément imaginaire situé après le dernier élément de la liste.
Voir également constBegin() et end().
bool QLinkedList::contains(const T &value) const
Renvoie ` true ` si la liste contient une occurrence de ` value` ; sinon, renvoie ` false`.
Cette fonction nécessite que le type de valeur dispose d’une implémentation de ` operator==()`.
Voir également QLinkedListIterator::findNext() et QLinkedListIterator::findPrevious().
int QLinkedList::count() const
Identique à ` size()`.
int QLinkedList::count(const T &value) const
Renvoie le nombre d'occurrences de ` value ` dans la liste.
Cette fonction nécessite que le type de valeur dispose d'une implémentation de la méthode ` operator==()`.
Voir également ` contains()`.
[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::crbegin() const
Renvoie un itérateur inversé de type STL (const) pointant vers le premier élément de la liste, dans l'ordre inverse.
Voir également begin(), rbegin() et rend().
[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::crend() const
Renvoie un itérateur inverse de type STL (const) pointant vers l'élément situé juste après le dernier élément de la liste, dans l'ordre inverse.
Voir également end(), rend() et rbegin().
bool QLinkedList::empty() const
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à ` isEmpty()` et renvoie ` true ` si la liste est vide.
QLinkedList<T>::iterator QLinkedList::end()
Renvoie un itérateur de type STL pointant vers l'élément imaginaire situé après le dernier élément de la liste.
Voir également begin() et constEnd().
[noexcept] QLinkedList<T>::const_iterator QLinkedList::end() const
Il s'agit d'une fonction surchargée.
bool QLinkedList::endsWith(const T &value) const
Renvoie true si la liste n'est pas vide et que son dernier élément est égal à value; sinon, renvoie false.
Voir également isEmpty() et last().
QLinkedList<T>::iterator QLinkedList::erase(QLinkedList<T>::iterator pos)
Supprime de la liste l'élément pointé par l'itérateur pos et renvoie un itérateur vers l'élément suivant de la liste (qui peut être end()).
Voir aussi insert().
QLinkedList<T>::iterator QLinkedList::erase(QLinkedList<T>::iterator begin, QLinkedList<T>::iterator end)
Supprime tous les éléments compris entre begin et end(ce dernier exclu).
Il s'agit d'une fonction surchargée.
T &QLinkedList::first()
Renvoie une référence au premier élément de la liste. Cette fonction suppose que la liste n'est pas vide.
Voir également last() et isEmpty().
const T &QLinkedList::first() const
Il s'agit d'une fonction surchargée.
[static] QLinkedList<T> QLinkedList::fromStdList(const std::list<T> &list)
Renvoie un objet ` QLinkedList ` contenant les données présentes dans ` list`. L'ordre des éléments dans ` QLinkedList ` est le même que dans ` list`.
Exemple :
std::list<double> stdlist;
list.push_back(1.2);
list.push_back(0.5);
list.push_back(3.14);
QLinkedList<double> list = QLinkedList<double>::fromStdList(stdlist);Voir aussi toStdList().
T &QLinkedList::front()
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à ` first()`.
const T &QLinkedList::front() const
Il s'agit d'une fonction surchargée.
QLinkedList<T>::iterator QLinkedList::insert(QLinkedList<T>::iterator before, const T &value)
Insère value devant l'élément pointé par l'itérateur before. Renvoie un itérateur pointant vers l'élément inséré.
Voir également erase().
bool QLinkedList::isEmpty() const
Renvoie « true » si la liste ne contient aucun élément ; sinon, renvoie « false ».
Voir également size().
T &QLinkedList::last()
Renvoie une référence à l'élément suivant de la liste. Cette fonction suppose que la liste n'est pas vide.
Voir également first() et isEmpty().
const T &QLinkedList::last() const
Il s'agit d'une fonction surchargée.
void QLinkedList::pop_back()
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à ` removeLast()`.
void QLinkedList::pop_front()
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à ` removeFirst()`.
void QLinkedList::prepend(const T &value)
Insère « value » au début de la liste.
Exemple :
QLinkedList<QString> list;
list.prepend("one");
list.prepend("two");
list.prepend("three");
// list: ["three", "two", "one"]Cela revient à utiliser list.insert(begin(), value).
Voir également append() et insert().
void QLinkedList::push_back(const T &value)
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à `append(value)`.
void QLinkedList::push_front(const T &value)
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à `prepend(value)`.
QLinkedList<T>::reverse_iterator QLinkedList::rbegin()
Renvoie un itérateur inversé de type STL pointant vers le premier élément de la liste, dans l'ordre inverse.
Voir également begin(), crbegin() et rend().
[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::rbegin() const
Il s'agit d'une fonction surchargée.
int QLinkedList::removeAll(const T &value)
Supprime toutes les occurrences de « value » dans la liste.
Exemple :
QList<QString> list;
list << "sun" << "cloud" << "sun" << "rain";
list.removeAll("sun");
// list: ["cloud", "rain"]Cette fonction nécessite que le type de valeur dispose d'une implémentation de la méthode operator==().
Voir aussi insert().
void QLinkedList::removeFirst()
Supprime le premier élément de la liste.
Cela revient à appeler la fonction erase(begin()).
Voir également removeLast() et erase().
void QLinkedList::removeLast()
Supprime le dernier élément de la liste.
Voir également removeFirst() et erase().
bool QLinkedList::removeOne(const T &value)
Supprime les premières occurrences de « value » dans la liste. Renvoie « true » en cas de succès ; sinon, renvoie « false ».
Exemple :
QList<QString> list;
list << "sun" << "cloud" << "sun" << "rain";
list.removeOne("sun");
// list: ["cloud", "sun", "rain"]Cette fonction nécessite que le type de valeur dispose d’une implémentation de operator==().
Voir aussi insert().
QLinkedList<T>::reverse_iterator QLinkedList::rend()
Renvoie un itérateur inversé de type STL pointant vers l'élément situé juste après le dernier élément de la liste, dans l'ordre inverse.
Voir également end(), crend() et rbegin().
[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::rend() const
Il s'agit d'une fonction surchargée.
int QLinkedList::size() const
Renvoie le nombre d'éléments de la liste.
Voir également isEmpty() et count().
bool QLinkedList::startsWith(const T &value) const
Renvoie true si la liste n'est pas vide et que son premier élément est égal à value; sinon, renvoie false.
Voir également isEmpty() et first().
[noexcept] void QLinkedList::swap(QLinkedList<T> &other)
La commande « swaps » remplace la liste other par cette liste. Cette opération est très rapide et ne rencontre jamais de problème.
T QLinkedList::takeFirst()
Supprime le premier élément de la liste et le renvoie.
Si vous n'utilisez pas la valeur renvoyée, la fonction ` removeFirst()` est plus efficace.
Voir également ` takeLast()` et ` removeFirst()`.
T QLinkedList::takeLast()
Supprime le dernier élément de la liste et le renvoie.
Si vous n'utilisez pas la valeur de retour, la fonction removeLast() est plus efficace.
Voir également takeFirst() et removeLast().
std::list<T> QLinkedList::toStdList() const
Renvoie un objet std::list contenant les données de cette QLinkedList. Exemple :
QLinkedList<double> list;
list << 1.2 << 0.5 << 3.14;
std::list<double> stdlist = list.toStdList();Voir aussi fromStdList().
bool QLinkedList::operator!=(const QLinkedList<T> &other) const
Renvoie « true » si « other » n’est pas égal à cette liste ; sinon, renvoie « false ».
Deux listes sont considérées comme égales si elles contiennent les mêmes valeurs dans le même ordre.
Cette fonction nécessite que le type de valeur implémente operator==().
Voir également operator==().
QLinkedList<T> QLinkedList::operator+(const QLinkedList<T> &other) const
Renvoie une liste contenant tous les éléments de cette liste, suivis de tous les éléments de la liste « other ».
Voir aussi operator+=().
QLinkedList<T> &QLinkedList::operator+=(const QLinkedList<T> &other)
Ajoute les éléments de la liste other à cette liste et renvoie une référence à cette liste.
Voir également operator+() et append().
QLinkedList<T> &QLinkedList::operator+=(const T &value)
Ajoute value à la liste.
Il s'agit d'une fonction surchargée.
QLinkedList<T> &QLinkedList::operator<<(const QLinkedList<T> &other)
Ajoute les éléments de la liste other à cette liste et renvoie une référence à cette liste.
Voir également operator+=() et append().
QLinkedList<T> &QLinkedList::operator<<(const T &value)
Ajoute ` value ` à la liste.
Il s'agit d'une fonction surchargée.
QLinkedList<T> &QLinkedList::operator=(const QLinkedList<T> &other)
Ajoute « other » à cette liste et renvoie une référence à cette liste.
bool QLinkedList::operator==(const QLinkedList<T> &other) const
Renvoie « true » si other est égal à cette liste ; sinon, renvoie « false ».
Deux listes sont considérées comme égales si elles contiennent les mêmes valeurs dans le même ordre.
Cette fonction nécessite que le type de valeur implémente l'interface operator==().
Voir également ` operator!=()`.
Éléments non membres associés
template <typename T> QDataStreamIfHasOStreamOperatorsContainer<QLinkedList<T>, T> operator<<(QDataStream &out, const QLinkedList<T> &list)
Écrit la liste chaînée list dans le flux out.
Cette fonction nécessite que le type de valeur implémente l'interface operator<<().
Voir également Format des opérateurs QDataStream.
template <typename T> QDataStreamIfHasIStreamOperatorsContainer<QLinkedList<T>, T> operator>>(QDataStream &in, QLinkedList<T> &list)
Lit une liste chaînée à partir du flux in et la stocke dans list.
Cette fonction nécessite que le type de valeur implémente l'interface operator>>().
Voir également Format des opérateurs QDataStream.
© 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.