Sur cette page

QLinkedList Class

template <typename T> class QLinkedList

La 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

Remarque : toutes les fonctions de cette classe sont réentrantes.

Types publics

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