Sur cette page

QLinkedList Class

template <typename T> class QLinkedList

La classe QLinkedList est une classe modèle qui fournit des listes liées. Plus d'informations...

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. Elle stocke une liste de valeurs et offre un accès basé sur un 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 à utiliser. Son API basée sur l'index est plus pratique que l'API basée sur l'itérateur de QLinkedList. Ses éléments occupent des positions de mémoire adjacentes. Elle s'étend également à moins de code dans votre exécutable.
  • Si vous avez besoin d'une véritable liste chaînée, avec des garanties d'insertions en temps constant au milieu de la liste et des itérateurs vers les éléments plutôt que des index, utilisez QLinkedList.

Voici un exemple de QLinkedList qui stocke des entiers et de QLinkedList qui stocke des valeurs 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"]

Pour obtenir 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 des extrémités de la liste, utilisez removeFirst() ou removeLast(). Si vous souhaitez supprimer toutes les occurrences d'une valeur donnée dans la liste, utilisez removeAll().

Il est souvent nécessaire de supprimer le premier ou le dernier élément de la liste et d'en faire quelque chose. Pour cela, QLinkedList fournit takeFirst() et takeLast(). Voici une boucle qui supprime les éléments d'une liste un par un et appelle delete:

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 laissera pas, par exemple, stocker un QWidget comme valeur ; à la place, stockez un QWidget *. Quelques fonctions ont des exigences supplémentaires ; par exemple, contains() et removeAll() s'attendent à ce 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 des itérateurs de style Java (QLinkedListIterator et QMutableLinkedListIterator) et des itérateurs de style STL (QLinkedList::const_iterator et QLinkedList::iterator). Voir la documentation de ces classes pour plus de détails.

Voir également QLinkedListIterator, QMutableLinkedListIterator, et QList.

Documentation sur les types de membres

QLinkedList::ConstIterator

Qt-style synonyme de QLinkedList::const_iterator.

QLinkedList::Iterator

Qt-style synonyme de QLinkedList::iterator.

QLinkedList::const_pointer

Typedef pour const T *. Fourni pour la compatibilité STL.

QLinkedList::const_reference

Typedef pour const T &. Fourni pour la compatibilité STL.

QLinkedList::const_reverse_iterator

Le typedef QLinkedList::const_reverse_iterator fournit un itérateur inverse constant de style STL pour QLinkedList.

Il s'agit simplement d'un typedef pour std::reverse_iterator<QLinkedList::const_iterator>.

Attention : Les itérateurs sur des conteneurs implicitement partagés ne fonctionnent pas exactement comme les itérateurs STL. Vous devez éviter de copier un conteneur lorsque des itérateurs sont actifs sur ce conteneur. Pour plus d'informations, lisez le problème du partage implicite des itérateurs.

Voir aussi QLinkedList::rbegin(), QLinkedList::rend(), QLinkedList::reverse_iterator, et QLinkedList::const_iterator.

QLinkedList::difference_type

Typedef pour ptrdiff_t. Fourni pour la compatibilité STL.

QLinkedList::pointer

Typedef pour T *. Fourni pour la compatibilité STL.

QLinkedList::reference

Typedef pour T &. Fourni pour la compatibilité STL.

QLinkedList::reverse_iterator

Le typedef QLinkedList::reverse_iterator fournit un itérateur inverse non-const de style STL pour QLinkedList.

Il s'agit simplement d'un typedef pour std::reverse_iterator<QLinkedList::iterator>.

Attention : Les itérateurs sur des conteneurs implicitement partagés ne fonctionnent pas exactement comme les itérateurs STL. Vous devez éviter de copier un conteneur lorsque des itérateurs sont actifs sur ce conteneur. Pour plus d'informations, lisez le problème du partage implicite des itérateurs.

Voir aussi QLinkedList::rbegin(), QLinkedList::rend(), QLinkedList::const_reverse_iterator, et QLinkedList::iterator.

QLinkedList::size_type

Typedef pour int. Fourni pour la compatibilité STL.

QLinkedList::value_type

Typedef pour T. Fourni pour la compatibilité STL.

Documentation sur les fonctions membres

[noexcept] QLinkedList::QLinkedList()

Construit une liste vide.

QLinkedList::QLinkedList(std::initializer_list<T> list)

Construit une liste à partir de la std::initializer_list spécifiée par list.

Ce constructeur n'est activé que si le compilateur prend en charge les listes d'initialisateurs C++11.

template <typename InputIterator, QtPrivate::IfIsInputIterator<InputIterator> = true> QLinkedList::QLinkedList(InputIterator first, InputIterator last)

Construit une liste dont le contenu se trouve dans l'intervalle de l'itérateur [first, last).

Le type de valeur de InputIterator doit être convertible en T.

QLinkedList::QLinkedList(const QLinkedList<T> &other)

Construit une copie de other.

Cette opération s'effectue en temps constant, car la QLinkedList est implicitement partagée. Le retour d'une QLinkedList à partir d'une fonction est donc très rapide. Si une instance partagée est modifiée, elle sera copiée (copy-on-write), ce qui prend un temps linéaire.

Voir également operator=().

[noexcept] QLinkedList::QLinkedList(QLinkedList<T> &&other)

Move-construit une instance de QLinkedList, en la faisant pointer sur le même objet que celui vers lequel other pointait.

QLinkedList::~QLinkedList()

Détruit la liste. Les références aux valeurs de la liste et 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"]

C'est la même chose que list.insert(end(), value).

Voir aussi operator<<(), prepend() et insert().

T &QLinkedList::back()

Cette fonction est fournie pour la compatibilité STL. Elle est équivalente à last().

const T &QLinkedList::back() const

Il s'agit d'une fonction surchargée.

QLinkedList<T>::iterator QLinkedList::begin()

Renvoie un itérateur de style STL pointant sur le premier élément de la liste.

Voir aussi 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 style STL pointant sur le premier élément de la liste.

Voir aussi begin() et cend().

[noexcept] QLinkedList<T>::const_iterator QLinkedList::cend() const

Renvoie un itérateur constant de style STL pointant vers l'élément imaginaire situé après le dernier élément de la liste.

Voir aussi cbegin() et end().

void QLinkedList::clear()

Supprime tous les éléments de la liste.

Voir également removeAll().

[noexcept] QLinkedList<T>::const_iterator QLinkedList::constBegin() const

Renvoie un itérateur constant de style STL pointant sur le premier élément de la liste.

Voir aussi begin() et constEnd().

[noexcept] QLinkedList<T>::const_iterator QLinkedList::constEnd() const

Renvoie un itérateur constant de style STL pointant vers l'élément imaginaire situé après le dernier élément de la liste.

Voir aussi 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 ait une implémentation de operator==().

Voir aussi 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 exige que le type de valeur ait une implémentation de operator==().

Voir aussi contains().

[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::crbegin() const

Renvoie un itérateur inverse de style STL constant pointant vers le premier élément de la liste, dans l'ordre inverse.

Voir aussi begin(), rbegin(), et rend().

[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::crend() const

Renvoie un itérateur inverse de style STL qui pointe sur le dernier élément de la liste, dans l'ordre inverse.

Voir aussi end(), rend(), et rbegin().

bool QLinkedList::empty() const

Cette fonction est fournie pour la compatibilité STL. Elle est équivalente à isEmpty() et renvoie true si la liste est vide.

QLinkedList<T>::iterator QLinkedList::end()

Renvoie un itérateur de style STL pointant vers l'élément imaginaire situé après le dernier élément de la liste.

Voir aussi 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 si son dernier élément est égal à value; sinon, renvoie false.

Voir aussi 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 également insert().

QLinkedList<T>::iterator QLinkedList::erase(QLinkedList<T>::iterator begin, QLinkedList<T>::iterator end)

Supprime tous les éléments de begin jusqu'à (mais pas y compris) end.

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 aussi 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 avec les données contenues dans list. L'ordre des éléments de l'objet QLinkedList est le même que celui de l'objet 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 pour la compatibilité STL. Elle est équivalente à 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. Retourne un itérateur pointant sur l'élément inséré.

Voir aussi erase().

bool QLinkedList::isEmpty() const

Renvoie true si la liste ne contient aucun élément ; sinon, renvoie false.

Voir aussi size().

T &QLinkedList::last()

Renvoie une référence au dernier élément de la liste. Cette fonction suppose que la liste n'est pas vide.

Voir aussi first() et isEmpty().

const T &QLinkedList::last() const

Il s'agit d'une fonction surchargée.

void QLinkedList::pop_back()

Cette fonction est fournie pour la compatibilité STL. Elle est équivalente à removeLast().

void QLinkedList::pop_front()

Cette fonction est fournie pour la compatibilité STL. Elle est équivalente à 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"]

C'est la même chose que list.insert(begin(), value).

Voir aussi append() et insert().

void QLinkedList::push_back(const T &value)

Cette fonction est fournie pour la compatibilité STL. Elle est équivalente à append(value).

void QLinkedList::push_front(const T &value)

Cette fonction est fournie pour la compatibilité STL. Elle est équivalente à prepend(value).

QLinkedList<T>::reverse_iterator QLinkedList::rbegin()

Renvoie un itérateur inversé de style STL pointant sur le premier élément de la liste, dans l'ordre inverse.

Voir aussi 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 : cette fonction exige que le type de valeur ait une implémentation de :

QList<QString> list;
list << "sun" << "cloud" << "sun" << "rain";
list.removeAll("sun");
// list: ["cloud", "rain"]

Cette fonction exige que le type de valeur ait une implémentation de operator==().

Voir aussi insert().

void QLinkedList::removeFirst()

Supprime le premier élément de la liste.

C'est la même chose que erase(begin()).

Voir aussi removeLast() et erase().

void QLinkedList::removeLast()

Supprime le dernier élément de la liste.

Voir aussi 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, il renvoie false.

Exemple :

QList<QString> list;
list << "sun" << "cloud" << "sun" << "rain";
list.removeOne("sun");
// list: ["cloud", "sun", "rain"]

Cette fonction exige que le type de valeur ait une implémentation de operator==().

Voir aussi insert().

QLinkedList<T>::reverse_iterator QLinkedList::rend()

Renvoie un itérateur inversé de style STL pointant sur l'avant-dernier élément de la liste, dans l'ordre inverse.

Voir aussi 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 aussi isEmpty() et count().

bool QLinkedList::startsWith(const T &value) const

Renvoie true si la liste n'est pas vide et si son premier élément est égal à value; sinon, renvoie false.

Voir aussi isEmpty() et first().

[noexcept] void QLinkedList::swap(QLinkedList<T> &other)

Remplace la liste other par cette liste. Cette opération est très rapide et n'échoue jamais.

T QLinkedList::takeFirst()

Supprime le premier élément de la liste et le renvoie.

Si vous n'utilisez pas la valeur de retour, 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, removeLast() est plus efficace.

Voir également takeFirst() et removeLast().

std::list<T> QLinkedList::toStdList() const

Renvoie un objet std::list avec les données contenues dans 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 le type de valeur pour implémenter 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 aussi 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 aussi 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)

Affecte 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 le type de valeur pour implémenter operator==().

Voir également operator!=().

Non-membres apparenté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 la mise en œuvre du type de valeur operator<<().

Voir aussi Format des opérateurs QDataStream.

template <typename T> QDataStreamIfHasIStreamOperatorsContainer<QLinkedList<T>, T> operator>>(QDataStream &in, QLinkedList<T> &list)

Lit une liste chaînée du flux in dans list.

Cette fonction nécessite que le type de valeur soit implémenté operator>>().

Voir aussi 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.