Sur cette page

QList Class

template <typename T> class QList

La classe QList est une classe modèle qui fournit un tableau dynamique. Plus d'informations...

En-tête : #include <QList>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core
Héritée par :
16 types

QBluetoothServiceInfo::Alternative QBluetoothServiceInfo::Sequence, , , , , , , , , , , , , , et QByteArrayList QItemSelection QMqttUserProperties QNdefMessage QPolygon QPolygonF QQueue QSignalSpy QStack QStringList QTestEventList QVector QVulkanInfoVector QXmlStreamAttributes

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

Types publics

Fonctions publiques

QList()
QList(qsizetype taille)
QList(std::initializer_list<T> args)
QList(InputIterator first, InputIterator last)
QList(qsizetype size, QList<T>::parameter_type value)
(since 6.8) QList(qsizetype taille, Qt::Initialisation)
QList(const QList<T> &autre)
QList(QList<T> &&autres)
~QList()
void append(QList<T>::parameter_type valeur)
(since 6.0) void append(QList<T> &&valeur)
void append(QList<T>::rvalue_ref valeur)
void append(const QList<T> &valeur)
(since 6.6) QList<T> &assign(std::initializer_list<T> l)
(since 6.6) QList<T> &assign(InputIterator first, InputIterator last)
(since 6.6) QList<T> &assign(qsizetype n, QList<T>::parameter_type t)
QList<T>::const_reference at(qsizetype i) const
QList<T>::référence back()
QList<T>::const_reference back() const
QList<T>::iterator begin()
QList<T>::const_iterator begin() const
qsizetype capacity() const
QList<T>::const_iterator cbegin() const
QList<T>::const_iterator cend() const
void clear()
QList<T>::const_iterator constBegin() const
QList<T>::const_pointer constData() const
QList<T>::const_iterator constEnd() const
const T &constFirst() const
const T &constLast() const
bool contains(const AT &valeur) const
qsizetype count(const AT &valeur) const
qsizetype count() const
QList<T>::const_reverse_iterator crbegin() const
QList<T>::const_reverse_iterator crend() const
QList<T>::pointeur data()
QList<T>::const_pointer data() const
QList<T>::iterator emplace(qsizetype i, Args &&... args)
QList<T>::iterator emplace(QList<T>::const_iterator before, Args &&... args)
QList<T>::reference emplaceBack(Args &&... args)
QList<T>::reference emplace_back(Args &&... args)
bool empty() const
QList<T>::iterator end()
QList<T>::const_iterator end() const
bool endsWith(QList<T>::parameter_type value) const
QList<T>::iterator erase(QList<T>::const_iterator pos)
QList<T>::iterator erase(QList<T>::const_iterator begin, QList<T>::const_iterator end)
QList<T> &fill(QList<T>::parameter_type value, qsizetype size = -1)
T &first()
(since 6.0) QList<T> first(qsizetype n) const
const T &first() const
QList<T>::référence front()
QList<T>::const_reference front() const
qsizetype indexOf(const AT &value, qsizetype from = 0) const
QList<T>::iterator insert(qsizetype i, QList<T>::parameter_type value)
QList<T>::iterator insert(qsizetype i, QList<T>::rvalue_ref valeur)
QList<T>::iterator insert(QList<T>::const_iterator before, qsizetype count, QList<T>::parameter_type value)
QList<T>::iterator insert(QList<T>::const_iterator before, QList<T>::parameter_type value)
QList<T>::iterator insert(QList<T>::const_iterator before, QList<T>::rvalue_ref value)
QList<T>::iterator insert(qsizetype i, qsizetype count, QList<T>::parameter_type value)
bool isEmpty() const
T &last()
(since 6.0) QList<T> last(qsizetype n) const
const T &last() const
qsizetype lastIndexOf(const AT &valeur, qsizetype from = -1) const
qsizetype length() const
(since 6.8) qsizetype max_size() const
QList<T> mid(qsizetype pos, qsizetype length = -1) const
void move(qsizetype from, qsizetype to)
void pop_back()
void pop_front()
void prepend(QList<T>::parameter_type valeur)
void prepend(QList<T>::rvalue_ref valeur)
void push_back(QList<T>::paramètre_type valeur)
void push_back(QList<T>::rvalue_ref valeur)
void push_front(QList<T>::paramètre_type valeur)
void push_front(QList<T>::rvalue_ref valeur)
QList<T>::reverse_iterator rbegin()
QList<T>::const_reverse_iterator rbegin() const
void remove(qsizetype i, qsizetype n = 1)
qsizetype removeAll(const AT &t)
void (qsizetype i, qsizetype n = 1) removeAt(qsizetype i)
void removeFirst()
(since 6.1) qsizetype removeIf(Prédicat pred)
void removeLast()
bool removeOne(const AT &t)
QList<T>::reverse_iterator rend()
QList<T>::const_reverse_iterator rend() const
void replace(qsizetype i, QList<T>::parameter_type value)
void replace(qsizetype i, QList<T>::rvalue_ref valeur)
void reserve(qsizetype taille)
(since 6.0) void resize(qsizetype taille)
(since 6.0) void resize(qsizetype taille, QList<T>::parameter_type c)
(since 6.8) void resizeForOverwrite(qsizetype taille)
void shrink_to_fit()
qsizetype size() const
(since 6.0) QList<T> sliced(qsizetype pos, qsizetype n) const
(since 6.0) QList<T> sliced(qsizetype pos) const
void squeeze()
bool startsWith(QList<T>::parameter_type value) const
void swap(QList<T> &autre)
void swapItemsAt(qsizetype i, qsizetype j)
T takeAt(qsizetype i)
QList<T>::value_type takeFirst()
QList<T>::value_type takeLast()
T value(qsizetype i) const
T value(qsizetype i, QList<T>::parameter_type defaultValue) const
bool operator!=(const QList<T> &autre) const
QList<T> operator+(QList<T> &&autre) &&
QList<T> operator+(const QList<T> &autre) &&
QList<T> operator+(QList<T> &&autres) const &
QList<T> operator+(const QList<T> &autre) const &
QList<T> &operator+=(const QList<T> &autre)
(since 6.0) QList<T> &operator+=(QList<T> &&autre)
QList<T> &operator+=(QList<T>::parameter_type value)
QList<T> &operator+=(QList<T>::rvalue_ref valeur)
bool operator<(const QList<T> &autre) const
QList<T> &operator<<(QList<T>::paramètre_type valeur)
QList<T> &operator<<(const QList<T> &autre)
(since 6.0) QList<T> &operator<<(QList<T> &&autre)
QList<T> &operator<<(QList<T>::rvalue_ref valeur)
bool operator<=(const QList<T> &autre) const
QList<T> &operator=(QList<T> &&autre)
QList<T> &operator=(const QList<T> &autre)
QList<T> &operator=(std::initializer_list<T> args)
bool operator==(const QList<T> &autre) const
bool operator>(const QList<T> &autre) const
bool operator>=(const QList<T> &autre) const
QList<T>::référence operator[](qsizetype i)
QList<T>::const_reference operator[](qsizetype i) const

Membres publics statiques

(since 6.8) qsizetype maxSize()
(since 6.1) qsizetype erase(QList<T> &list, const AT &t)
(since 6.1) qsizetype erase_if(QList<T> &list, Predicate pred)
size_t qHash(const QList<T> &key, size_t seed = 0)
QDataStream &operator<<(QDataStream &out, const QList<T> &list)
(since 6.9) auto operator<=>(const QList<T> &lhs, const QList<T> &rhs)
QDataStream &operator>>(QDataStream &in, QList<T> &list)

Description détaillée

QList<T> est l'une des classes de conteneurs génériques de Qt. Elle stocke ses éléments dans des emplacements de mémoire adjacents et fournit un accès rapide basé sur un index. QVector<T> était une classe différente dans Qt 5, mais est maintenant un simple alias de QList.

QList<T> et QVarLengthArray<T> fournissent des API et des fonctionnalités similaires. Elles sont souvent interchangeables, mais cela a des conséquences sur les performances. Voici un aperçu des cas d'utilisation :

  • QList devrait être votre premier choix par défaut.
  • QVarLengthArray QList fournit un tableau qui réserve de l'espace sur la pile, mais qui peut croître dynamiquement sur le tas si nécessaire. C'est une bonne solution pour les conteneurs à courte durée de vie qui sont généralement de petite taille.
  • Si vous avez besoin d'une vraie liste chaînée, qui garantit des insertions en temps constant au milieu de la liste et utilise des itérateurs vers les éléments plutôt que des index, utilisez std::list.

Note : QList et QVarLengthArray garantissent tous deux une disposition des tableaux compatible avec le langage C.

Note : QList dans Qt 5 n'avait pas toujours une disposition de tableau compatible avec le C et nous avons souvent recommandé d'utiliser QVector à la place pour des performances plus prévisibles. Ce n'est plus le cas dans Qt 6, où les deux classes partagent maintenant une implémentation et peuvent être utilisées de manière interchangeable.

Voici un exemple d'une QList qui stocke des entiers et d'une QList qui stocke des valeurs QString:

QList<int> integerList;
QList<QString> stringList;

QList stocke ses éléments dans un tableau de mémoire continue. Généralement, les listes sont créées avec une taille initiale. Par exemple, le code suivant construit une QList avec 200 éléments :

QList<QString> list(200);

Les éléments sont automatiquement initialisés avec une valeur construite par défaut. Si vous souhaitez initialiser la liste avec une valeur différente, transmettez cette valeur en tant que deuxième argument du constructeur :

QList<QString> list(200, "Pass");

Vous pouvez également appeler fill() à tout moment pour remplir la liste avec une valeur.

QList utilise des index basés sur 0, tout comme les tableaux C++. Pour accéder à l'élément situé à une position d'index particulière, vous pouvez utiliser operator[](). Sur les listes non-const, operator[]() renvoie une référence à l'élément qui peut être utilisée du côté gauche d'une affectation :

if (list[0] == "Liz")
    list[0] = "Elizabeth";

Pour un accès en lecture seule, une syntaxe alternative consiste à utiliser at() :

for (qsizetype i = 0; i < list.size(); ++i) {
    if (list.at(i) == "Alfonso")
        cout << "Found Alfonso at position " << i << endl;
}

at() peut être plus rapide que operator[](), car il ne provoque jamais de copie profonde.

Une autre façon d'accéder aux données stockées dans une QList est d'appeler data(). Cette fonction renvoie un pointeur sur le premier élément de la liste. Vous pouvez utiliser ce pointeur pour accéder directement aux éléments stockés dans la liste et les modifier. Le pointeur est également utile si vous devez passer une QList à une fonction qui accepte un simple tableau C++.

Si vous souhaitez trouver toutes les occurrences d'une valeur particulière dans une liste, utilisez indexOf() ou lastIndexOf(). La première fonction effectue une recherche vers l'avant à partir d'une position d'index donnée, tandis que la seconde effectue une recherche vers l'arrière. Les deux renvoient l'index de l'élément correspondant s'ils en ont trouvé un ; sinon, ils renvoient -1. Par exemple :

qsizetype i = list.indexOf("Harumi");
if (i != -1)
    cout << "First occurrence of Harumi is at position " << i << endl;

Si vous souhaitez simplement vérifier si une liste contient une valeur particulière, utilisez contains(). Si vous voulez savoir combien de fois une valeur particulière apparaît dans la liste, utilisez count().

QList fournit ces fonctions de base pour ajouter, déplacer et supprimer des éléments : insert(), replace(), remove(), prepend(), append(). À l'exception de append(), prepend() et replace(), ces fonctions peuvent être lentes(temps linéaire) pour les grandes listes, car elles nécessitent de déplacer de nombreux éléments de la liste d'une position en mémoire. Si vous souhaitez une classe de conteneur qui permette une insertion/suppression rapide au milieu, utilisez plutôt std::list.

Contrairement aux tableaux C++ ordinaires, les QLists peuvent être redimensionnées à tout moment en appelant resize(). Si la nouvelle taille est plus grande que l'ancienne, QList peut avoir besoin de réallouer toute la liste. QList tente de réduire le nombre de réallocations en préallouant jusqu'à deux fois plus de mémoire que les données réelles nécessaires.

Si vous construisez progressivement une QList et que vous savez à l'avance combien d'éléments elle contiendra, vous pouvez appeler reserve(), en demandant à QList de préallouer une certaine quantité de mémoire. Vous pouvez également appeler capacity() pour connaître la quantité de mémoire allouée à la QList.

Notez que l'utilisation d'opérateurs et de fonctions non-const peut amener QList à effectuer une copie profonde des données, en raison du partage implicite.

Le type de valeur de QList 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, indexOf() et lastIndexOf() s'attendent à ce que le type de valeur prenne en charge operator==(). Ces exigences sont documentées pour chaque fonction.

Pour l'itération sur les éléments, voir Itération sur les conteneurs. Pour l'utilisation de QList avec les fonctions de l'en-tête <algorithm>, telles que std::sort(), std::reverse(), et std::count_if(), voir Conteneurs Qt et algorithmes std.

En plus de QList, Qt fournit également QVarLengthArray, une classe de très bas niveau avec peu de fonctionnalités et optimisée pour la vitesse.

Plus d'informations sur l'utilisation des conteneurs Qt

Pour une discussion détaillée comparant les conteneurs Qt entre eux et avec les conteneurs STL, voir Comprendre les conteneurs Qt.

Taille maximale et conditions de sortie de mémoire

La taille maximale de QList dépend de l'architecture. La plupart des systèmes 64 bits peuvent allouer plus de 2 Go de mémoire, avec une limite typique de 2^63 octets. La valeur réelle dépend également des frais généraux nécessaires à la gestion du bloc de données. Par conséquent, vous pouvez vous attendre à une taille maximale de 2 Go moins les frais généraux sur les plates-formes 32 bits, et de 2^63 octets moins les frais généraux sur les plates-formes 64 bits. Le nombre d'éléments pouvant être stockés dans une QList correspond à cette taille maximale divisée par la taille d'un élément stocké.

Lorsque l'allocation de mémoire échoue, QList utilise la macro Q_CHECK_PTR, qui lance une exception std::bad_alloc si l'application est compilée avec la prise en charge des exceptions. Si les exceptions sont désactivées, le fait de manquer de mémoire est un comportement non défini.

Notez que le système d'exploitation peut imposer des limites supplémentaires aux applications qui détiennent une grande quantité de mémoire allouée, en particulier de grands blocs contigus. De telles considérations, la configuration d'un tel comportement ou toute atténuation sont en dehors du champ d'application de l'API Qt.

Documentation sur les types de membres

[alias] QList::ConstIterator

Qt-style synonyme de QList::const_iterator.

[alias] QList::Iterator

Qt-style synonyme de QList::iterator.

[alias] QList::const_pointer

Fourni pour la compatibilité STL.

[alias] QList::const_reference

Fourni pour la compatibilité STL.

[alias] QList::const_reverse_iterator

Le typedef QList::const_reverse_iterator fournit un const reverse iterator de style STL pour QList.

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 Problème des itérateurs partagés implicitement.

Attention : Les itérateurs sont invalidés lorsque QList est modifié. Considérez que tous les itérateurs sont invalidés par défaut. Les exceptions à cette règle sont explicitement documentées.

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

[alias] QList::difference_type

Fourni pour la compatibilité STL.

[alias] QList::parameter_type

[alias] QList::pointer

Fourni pour la compatibilité STL.

[alias] QList::reference

Fourni pour la compatibilité STL.

[alias] QList::reverse_iterator

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

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 Problème des itérateurs partagés implicitement.

Attention : Les itérateurs sont invalidés lorsque QList est modifié. Considérez que tous les itérateurs sont invalidés par défaut. Les exceptions à cette règle sont explicitement documentées.

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

[alias] QList::rvalue_ref

[alias] QList::size_type

Fourni pour la compatibilité STL.

[alias] QList::value_type

Fourni pour la compatibilité STL.

Documentation sur les fonctions membres

[constexpr noexcept] QList::QList()

Construit une liste vide.

Voir aussi resize().

[explicit] QList::QList(qsizetype size)

Construit une liste avec une taille initiale de size éléments.

Les éléments sont initialisés avec une valeur construite par défaut.

Voir aussi resize().

QList::QList(std::initializer_list<T> args)

Construit une liste à partir de la std::initializer_list donnée par args.

template <typename InputIterator, QList<T>::if_input_iterator<InputIterator> = true> QList::QList(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.

Contraintes

Participe à la résolution des surcharges uniquement si InputIterator répond aux exigences d'un LegacyInputIterator.

QList::QList(qsizetype size, QList<T>::parameter_type value)

Construit une liste avec une taille initiale de size éléments. Chaque élément est initialisé avec value.

Voir aussi resize() et fill().

[since 6.8] QList::QList(qsizetype size, Qt::Initialization)

Construit une liste avec une taille initiale de size éléments.

QList tentera de ne pas initialiser les éléments.

Plus précisément, si a un constructeur qui accepte , ce constructeur sera utilisé pour initialiser les éléments :

  • si T a un constructeur qui accepte Qt::Uninitialized, ce constructeur sera utilisé pour initialiser les éléments ;
  • sinon, chaque élément est construit par défaut. Pour les types trivialement constructibles (tels que int, float, etc.), cela équivaut à ne pas les initialiser.

Cette fonction a été introduite dans Qt 6.8.

Voir aussi resizeForOverwrite().

[default] QList::QList(const QList<T> &other)

Construit une copie de other.

Cette opération prend un temps constant, car la QList est implicitement partagée. Cela rend le retour d'une QList à partir d'une fonction 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=().

[default] QList::QList(QList<T> &&other)

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

[default] QList::~QList()

Détruit la liste.

void QList::append(QList<T>::parameter_type value)

Insère value à la fin de la liste.

Exemple :

QList<QString> list;
list.append("one");
list.append("two");
QString three = "three";
list.append(three);
// list: ["one", "two", "three"]
// three: "three"

Cela revient à appeler resize(size() + 1) et à affecter value au nouveau dernier élément de la liste.

Cette opération est relativement rapide, car QList alloue généralement plus de mémoire que nécessaire, ce qui lui permet de s'agrandir sans avoir à réallouer toute la liste à chaque fois.

Voir également operator<<(), prepend() et insert().

[since 6.0] void QList::append(QList<T> &&value)

Déplace les éléments de la liste value à la fin de cette liste.

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

Cette fonction a été introduite dans Qt 6.0.

Voir aussi operator<<() et operator+=().

void QList::append(QList<T>::rvalue_ref value)

Exemple :

QList<QString> list;
list.append("one");
list.append("two");
QString three = "three";
list.append(std::move(three));
// list: ["one", "two", "three"]
// three: ""

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

void QList::append(const QList<T> &value)

Ajoute les éléments de la liste value à cette liste.

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

Voir aussi operator<<() et operator+=().

[since 6.6] QList<T> &QList::assign(std::initializer_list<T> l)

Remplace le contenu de cette liste par une copie des éléments de l.

La taille de cette liste sera égale au nombre d'éléments de l.

Cette fonction n'alloue de la mémoire que si le nombre d'éléments de l dépasse la capacité de cette liste ou si cette liste est partagée.

Cette fonction a été introduite dans Qt 6.6.

[since 6.6] template <typename InputIterator, QList<T>::if_input_iterator<InputIterator> = true> QList<T> &QList::assign(InputIterator first, InputIterator last)

Remplace le contenu de cette liste par une copie des éléments de l'intervalle de l'itérateur [first, last).

La taille de cette liste sera égale au nombre d'éléments de l'intervalle [first, last).

Cette fonction n'allouera de la mémoire que si le nombre d'éléments de la plage dépasse la capacité de cette liste ou si cette liste est partagée.

Note : Le comportement est indéfini si l'un des arguments est un itérateur dans *this.

Contraintes

Participe à la résolution des surcharges uniquement si InputIterator répond aux exigences d'un LegacyInputIterator.

Cette fonction a été introduite dans Qt 6.6.

[since 6.6] QList<T> &QList::assign(qsizetype n, QList<T>::parameter_type t)

Remplace le contenu de cette liste par n copies de t.

La taille de cette liste sera égale à n.

Cette fonction n'allouera de la mémoire que si n dépasse la capacité de la liste ou si cette liste est partagée.

Cette fonction a été introduite dans Qt 6.6.

[noexcept] QList<T>::const_reference QList::at(qsizetype i) const

Renvoie l'élément à la position d'index i dans la liste.

i doit être une position d'index valide dans la liste (c'est-à-dire 0 <= i < size()).

Voir également value() et operator[]().

QList<T>::reference QList::back()

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

[noexcept] QList<T>::const_reference QList::back() const

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

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

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

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QList.

Voir aussi constBegin() et end().

[noexcept] QList<T>::const_iterator QList::begin() const

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

qsizetype QList::capacity() const

Renvoie le nombre maximum d'éléments qui peuvent être stockés dans la liste sans forcer une réallocation.

Le seul but de cette fonction est de fournir un moyen d'affiner l'utilisation de la mémoire de QList. En général, vous n'aurez que rarement besoin d'appeler cette fonction. Si vous voulez savoir combien d'éléments il y a dans la liste, appelez size().

Remarque : une liste allouée statiquement affichera une capacité de 0, même si elle n'est pas vide.

Attention : La position de l'espace libre dans le bloc de mémoire alloué n'est pas définie. En d'autres termes, vous ne devez pas supposer que la mémoire libre est toujours située à la fin de la liste. Vous pouvez appeler reserve() pour vous assurer qu'il y a suffisamment d'espace à la fin.

Voir également reserve() et squeeze().

[noexcept] QList<T>::const_iterator QList::cbegin() const

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

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QList.

Voir aussi begin() et cend().

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

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

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QList.

Voir aussi cbegin() et end().

void QList::clear()

Supprime tous les éléments de la liste.

Si cette liste n'est pas partagée, le capacity() est conservé. Utilisez squeeze() pour vous débarrasser de la capacité excédentaire.

Remarque : dans les versions de Qt XML antérieures à 5.7 (pour QVector) et 6.0 (pour QList), cette fonction libérait la mémoire utilisée par la liste au lieu de préserver la capacité.

Voir également resize() et squeeze().

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

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

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QList.

Voir aussi begin() et constEnd().

[noexcept] QList<T>::const_pointer QList::constData() const

Renvoie un pointeur constant vers les données stockées dans la liste. Le pointeur peut être utilisé pour accéder aux éléments de la liste.

Attention : Le pointeur est invalidé lors du détachement ou lorsque le site QList est modifié.

Cette fonction est surtout utile pour passer une liste à une fonction qui accepte un tableau C++ simple.

Voir aussi data() et operator[]().

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

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

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QList.

Voir aussi constBegin() et end().

[noexcept] const T &QList::constFirst() const

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

Voir aussi constLast(), isEmpty() et first().

[noexcept] const T &QList::constLast() const

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

Voir aussi constFirst(), isEmpty() et last().

[noexcept] template <typename AT> bool QList::contains(const AT &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 indexOf() et count().

[noexcept] template <typename AT = T> qsizetype QList::count(const AT &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() et indexOf().

[constexpr noexcept] qsizetype QList::count() const

Identique à size().

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

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

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

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QList.

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

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

Renvoie un itérateur inverse de style STL constant pointant juste après le dernier élément de la liste, dans l'ordre inverse.

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QList.

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

QList<T>::pointer QList::data()

Renvoie un pointeur sur les données stockées dans la liste. Le pointeur peut être utilisé pour accéder aux éléments de la liste et les modifier.

Exemple :

QList<int> list(10);
int *data = list.data();
for (qsizetype i = 0; i < 10; ++i)
    data[i] = 2 * i;

Attention : Le pointeur est invalidé lors du détachement ou lorsque le site QList est modifié.

Cette fonction est surtout utile pour passer une liste à une fonction qui accepte un tableau C++ simple.

Voir aussi constData() et operator[]().

[noexcept] QList<T>::const_pointer QList::data() const

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

template <typename... Args> QList<T>::iterator QList::emplace(qsizetype i, Args &&... args)

Étend le conteneur en insérant un nouvel élément à la position i. Ce nouvel élément est construit sur place en utilisant args comme arguments pour sa construction.

Renvoie un itérateur vers le nouvel élément.

Exemple :

QList<QString> list{"a", "ccc"};
list.emplace(1, 2, 'b');
// list: ["a", "bb", "ccc"]

Remarque : il est garanti que l'élément sera créé sur place au début, mais il peut ensuite être copié ou déplacé à la bonne position.

Voir aussi emplaceBack.

template <typename... Args> QList<T>::iterator QList::emplace(QList<T>::const_iterator before, Args &&... args)

Crée un nouvel élément devant l'élément pointé par l'itérateur before. Ce nouvel élément est construit sur place en utilisant args comme arguments pour sa construction.

Renvoie un itérateur vers le nouvel élément.

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

template <typename... Args> QList<T>::reference QList::emplaceBack(Args &&... args)

template <typename... Args> QList<T>::reference QList::emplace_back(Args &&... args)

Ajoute un nouvel élément à la fin du conteneur. Ce nouvel élément est construit sur place en utilisant args comme arguments pour sa construction.

Renvoie une référence au nouvel élément.

Exemple :

QList<QString> list{"one", "two"} ; list.emplaceBack(3, 'a') ;qDebug() << list;
// liste : ["one", "two", "aaa"]

Il est également possible d'accéder à un objet nouvellement créé en utilisant une référence retournée :

QList<QString> list;
auto &ref = list.emplaceBack();
ref = "one";
// list: ["one"]

C'est la même chose que list.emplace(list.size(), args).

Voir également emplace.

[noexcept] bool QList::empty() const

Cette fonction est fournie pour des raisons de compatibilité avec la STL. Elle est équivalente à isEmpty() et renvoie true si la liste est vide, sinon elle renvoie false.

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

Renvoie un itérateur de style STL pointant juste après le dernier élément de la liste.

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QList.

Voir aussi begin() et constEnd().

[noexcept] QList<T>::const_iterator QList::end() const

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

bool QList::endsWith(QList<T>::parameter_type value) const

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

Voir aussi isEmpty() et last().

QList<T>::iterator QList::erase(QList<T>::const_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()).

La suppression d'un élément préservera la capacité de la liste et ne réduira pas la quantité de mémoire allouée. Pour se débarrasser d'une capacité supplémentaire et libérer autant de mémoire que possible, appelez squeeze().

Remarque : lorsque QList n'est pas implicitement partagé, cette fonction n'invalide que les itérateurs situés à la position spécifiée ou après celle-ci.

Voir également insert() et remove().

QList<T>::iterator QList::erase(QList<T>::const_iterator begin, QList<T>::const_iterator end)

Supprime tous les éléments de begin jusqu'à (mais pas y compris) end. Renvoie un itérateur vers le même élément que celui auquel end faisait référence avant l'appel.

La suppression d'un élément préservera la capacité de la liste et ne réduira pas la quantité de mémoire allouée. Pour se débarrasser d'une capacité supplémentaire et libérer autant de mémoire que possible, appelez squeeze().

Remarque : lorsque QList n'est pas implicitement partagé, cette fonction n'invalide que les itérateurs situés à la position spécifiée ou après celle-ci.

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

QList<T> &QList::fill(QList<T>::parameter_type value, qsizetype size = -1)

Attribue value à tous les éléments de la liste. Si size est différent de -1 (valeur par défaut), la liste est préalablement redimensionnée à size.

Exemple :

QList<QString> list(3);
list.fill("Yes");
// list: ["Yes", "Yes", "Yes"]

list.fill("oh", 5);
// list: ["oh", "oh", "oh", "oh", "oh"]

Voir aussi resize().

T &QList::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(), isEmpty() et constFirst().

[since 6.0] QList<T> QList::first(qsizetype n) const

Renvoie une sous-liste contenant les premiers éléments n de cette liste.

Remarque : le comportement est indéfini lorsque n < 0 ou n > size().

Cette fonction a été introduite dans Qt 6.0.

Voir aussi last() et sliced().

[noexcept] const T &QList::first() const

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

QList<T>::reference QList::front()

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

[noexcept] QList<T>::const_reference QList::front() const

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

[noexcept] template <typename AT> qsizetype QList::indexOf(const AT &value, qsizetype from = 0) const

Renvoie la position d'index de la première occurrence de value dans la liste, en effectuant une recherche vers l'avant à partir de la position d'index from. Retourne -1 si aucun élément ne correspond.

Exemple :

QList<QString> list{"A", "B", "C", "B", "A"};
list.indexOf("B");            // returns 1
list.indexOf("B", 1);         // returns 1
list.indexOf("B", 2);         // returns 3
list.indexOf("X");            // returns -1

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

Voir également lastIndexOf() et contains().

QList<T>::iterator QList::insert(qsizetype i, QList<T>::parameter_type value)

QList<T>::iterator QList::insert(qsizetype i, QList<T>::rvalue_ref value)

Insère value à la position d'index i dans la liste. Si i est 0, la valeur est ajoutée à la liste. Si i est size(), la valeur est ajoutée à la liste.

Exemple :

QList<QString> list = {"alpha", "beta", "delta"};
list.insert(2, "gamma");
// list: ["alpha", "beta", "gamma", "delta"]

Pour les grandes listes, cette opération peut être lente(temps linéaire), car elle nécessite de déplacer tous les éléments aux index i et supérieurs d'une position supplémentaire dans la mémoire. Si vous souhaitez une classe conteneur qui fournisse une fonction insert() rapide, utilisez plutôt std::list.

Voir également append(), prepend() et remove().

QList<T>::iterator QList::insert(QList<T>::const_iterator before, qsizetype count, QList<T>::parameter_type value)

Insère count copies de value devant l'élément pointé par l'itérateur before. Retourne un itérateur pointant sur le premier des éléments insérés.

QList<T>::iterator QList::insert(QList<T>::const_iterator before, QList<T>::parameter_type value)

QList<T>::iterator QList::insert(QList<T>::const_iterator before, QList<T>::rvalue_ref 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é.

QList<T>::iterator QList::insert(qsizetype i, qsizetype count, QList<T>::parameter_type value)

Insère count copies de value à la position d'index i dans la liste.

Exemple :

QList<double> list = {2.718, 1.442, 0.4342};
list.insert(1, 3, 9.9);
// list: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]

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

[constexpr noexcept] bool QList::isEmpty() const

Renvoie true si la liste a une taille de 0 ; sinon, renvoie false.

Voir aussi size() et resize().

T &QList::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(), isEmpty() et constLast().

[since 6.0] QList<T> QList::last(qsizetype n) const

Renvoie une sous-liste contenant les derniers éléments n de cette liste.

Remarque : le comportement est indéfini lorsque n < 0 ou n > size().

Cette fonction a été introduite dans Qt 6.0.

Voir aussi first() et sliced().

[noexcept] const T &QList::last() const

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

[noexcept] template <typename AT> qsizetype QList::lastIndexOf(const AT &value, qsizetype from = -1) const

Renvoie la position d'index de la dernière occurrence de la valeur value dans la liste, en effectuant une recherche à rebours à partir de la position d'index from. Si from est égal à -1 (valeur par défaut), la recherche commence au dernier élément. Renvoie -1 si aucun élément ne correspond.

Exemple :

QList<QString> list = {"A", "B", "C", "B", "A"};
list.lastIndexOf("B");        // returns 3
list.lastIndexOf("B", 3);     // returns 3
list.lastIndexOf("B", 2);     // returns 1
list.lastIndexOf("X");        // returns -1

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

Voir également indexOf().

[constexpr noexcept] qsizetype QList::length() const

Identique à size() et count().

Voir également size() et count().

[constexpr noexcept, since 6.8] qsizetype QList::max_size() const

[static constexpr, since 6.8] qsizetype QList::maxSize()

Elle renvoie le nombre maximal d'éléments que la liste peut théoriquement contenir. En pratique, ce nombre peut être beaucoup plus petit, limité par la quantité de mémoire disponible dans le système.

Ces fonctions ont été introduites dans Qt 6.8.

QList<T> QList::mid(qsizetype pos, qsizetype length = -1) const

Renvoie une sous-liste contenant des éléments de cette liste, à partir de la position pos. Si length vaut -1 (valeur par défaut), tous les éléments après pos sont inclus ; sinon, les éléments length (ou tous les éléments restants s'il y a moins d'éléments length ) sont inclus.

void QList::move(qsizetype from, qsizetype to)

Déplace l'élément à la position d'index from à la position d'index to.

from et to doivent se trouver à l'intérieur des limites.

Par exemple, pour déplacer le premier élément à la fin de la liste :

QList<int> list = {1, 2, 3}; list.move(0, list.size() - 1) ;qDebug() << list; // Prints "QList(2, 3, 1)"

[noexcept] void QList::pop_back()

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

[noexcept] void QList::pop_front()

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

void QList::prepend(QList<T>::parameter_type value)

void QList::prepend(QList<T>::rvalue_ref value)

Insère value au début de la liste.

Exemple :

QList<QString> list;
list.prepend("one");
list.prepend("two");
list.prepend("three");
// list: ["three", "two", "one"]

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

Normalement, cette opération est relativement rapide ( temps constant amorti). QList est capable d'allouer de la mémoire supplémentaire au début des données de la liste et de croître dans cette direction sans réaffecter ou déplacer les données à chaque opération. Cependant, si vous voulez une classe conteneur avec une garantie de temps constant, utilisez std::list à la place, mais préférez QList dans le cas contraire.

Voir aussi append() et insert().

void QList::push_back(QList<T>::parameter_type value)

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

void QList::push_back(QList<T>::rvalue_ref value)

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

void QList::push_front(QList<T>::parameter_type value)

void QList::push_front(QList<T>::rvalue_ref value)

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

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

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

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QList.

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

[noexcept] QList<T>::const_reverse_iterator QList::rbegin() const

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

void QList::remove(qsizetype i, qsizetype n = 1)

Supprime les éléments n de la liste, à partir de la position d'index i.

La suppression d'éléments préservera la capacité de la liste et ne réduira pas la quantité de mémoire allouée. Pour se débarrasser de la capacité supplémentaire et libérer autant de mémoire que possible, appelez squeeze().

Remarque : lorsque QList n'est pas implicitement partagé, cette fonction n'invalide que les itérateurs situés à la position spécifiée ou après celle-ci.

Voir également insert(), replace() et fill().

template <typename AT = T> qsizetype QList::removeAll(const AT &t)

Supprime de la liste tous les éléments dont la comparaison est égale à t. Renvoie le nombre d'éléments supprimés, le cas échéant.

La suppression d'éléments préserve la capacité de la liste et ne réduit pas la quantité de mémoire allouée. Pour obtenir une capacité supplémentaire et libérer autant de mémoire que possible, appelez squeeze().

Voir également removeOne().

void QList::removeAt(qsizetype i)

Supprime l'élément à la position d'index i. Équivalent à

remove(i);

La suppression d'un élément préservera la capacité de la liste et ne réduira pas la quantité de mémoire allouée. Pour se débarrasser de la capacité supplémentaire et libérer autant de mémoire que possible, appelez squeeze().

Remarque : lorsque QList n'est pas implicitement partagé, cette fonction n'invalide que les itérateurs situés à la position spécifiée ou après celle-ci.

Voir également remove().

[noexcept] void QList::removeFirst()

Supprime le premier élément de la liste. Appeler cette fonction équivaut à appeler remove(0). La liste ne doit pas être vide. Si la liste peut être vide, appelez isEmpty() avant d'appeler cette fonction.

La suppression d'un élément préservera la capacité de la liste et ne réduira pas la quantité de mémoire allouée. Pour se débarrasser d'une capacité supplémentaire et libérer autant de mémoire que possible, appelez squeeze().

Voir également remove(), takeFirst() et isEmpty().

[since 6.1] template <typename Predicate> qsizetype QList::removeIf(Predicate pred)

Supprime de la liste tous les éléments pour lesquels le prédicat pred renvoie la valeur true. Renvoie le nombre d'éléments supprimés, le cas échéant.

Cette fonction a été introduite dans Qt 6.1.

Voir aussi removeAll().

[noexcept] void QList::removeLast()

Supprime le dernier élément de la liste. Appeler cette fonction équivaut à appeler remove(size() - 1). La liste ne doit pas être vide. Si la liste peut être vide, appelez isEmpty() avant d'appeler cette fonction.

La suppression d'un élément préservera la capacité de la liste et ne réduira pas la quantité de mémoire allouée. Pour se débarrasser d'une capacité supplémentaire et libérer autant de mémoire que possible, appelez squeeze().

Voir aussi remove(), takeLast(), removeFirst() et isEmpty().

template <typename AT = T> bool QList::removeOne(const AT &t)

Supprime de la liste le premier élément dont la comparaison est égale à t. Retourne si un élément a effectivement été supprimé.

La suppression d'un élément préservera la capacité de la liste et ne réduira pas la quantité de mémoire allouée. Pour se débarrasser d'une capacité supplémentaire et libérer autant de mémoire que possible, appelez squeeze().

Voir également removeAll().

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

Renvoie un itérateur inversé de style STL pointant juste après le dernier élément de la liste, dans l'ordre inverse.

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QList.

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

[noexcept] QList<T>::const_reverse_iterator QList::rend() const

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

void QList::replace(qsizetype i, QList<T>::parameter_type value)

void QList::replace(qsizetype i, QList<T>::rvalue_ref value)

Remplace l'élément à la position d'index i par value.

i doit être une position d'index valide dans la liste (c'est-à-dire 0 <= i < size()).

Voir également operator[]() et remove().

void QList::reserve(qsizetype size)

Tente d'allouer de la mémoire pour au moins size éléments.

Si vous connaissez à l'avance la taille de la liste, vous devriez appeler cette fonction pour éviter les réallocations et la fragmentation de la mémoire. Si vous redimensionnez souvent la liste, vous obtiendrez probablement de meilleures performances.

En cas de doute sur la quantité d'espace nécessaire, il est généralement préférable d'utiliser une borne supérieure comme size, ou une estimation élevée de la taille la plus probable, si une borne supérieure stricte serait beaucoup plus grande que cela. Si size est une sous-estimation, la liste s'allongera en fonction des besoins une fois que la taille réservée sera dépassée, ce qui peut conduire à une allocation plus importante que ne l'aurait fait votre meilleure surestimation et ralentira l'opération qui la déclenche.

Attention : reserve() réserve de la mémoire mais ne modifie pas la taille de la liste. Accéder à des données au-delà de la fin actuelle de la liste est un comportement non défini. Si vous devez accéder à la mémoire au-delà de la fin actuelle de la liste, utilisez resize().

Voir également squeeze(), capacity() et resize().

[since 6.0] void QList::resize(qsizetype size)

[since 6.0] void QList::resize(qsizetype size, QList<T>::parameter_type c)

Fixe la taille de la liste à size. Si size est supérieur à la taille actuelle, des éléments sont ajoutés à la fin ; les nouveaux éléments sont initialisés avec une valeur construite par défaut ou c. Si size est inférieur à la taille actuelle, des éléments sont retirés de la fin.

Si cette liste n'est pas partagée, le capacity() est conservé. Utilisez squeeze() pour vous débarrasser de la capacité excédentaire.

Remarque : dans les versions de Qt antérieures à 5.7 (pour QVector; QList n'avait pas de resize() jusqu'à la version 6.0), cette fonction libérait la mémoire utilisée par la liste au lieu de préserver la capacité.

Ces fonctions ont été introduites dans Qt 6.0.

Voir aussi size().

[since 6.8] void QList::resizeForOverwrite(qsizetype size)

Fixe la taille de la liste à size. Si size est inférieur à la taille actuelle, des éléments sont retirés de la fin. Si size est supérieur à la taille actuelle, des éléments sont ajoutés à la fin ; QList tentera de ne pas initialiser ces nouveaux éléments.

Plus précisément :

  • si T a un constructeur qui accepte Qt::Uninitialized, ce constructeur sera utilisé pour initialiser les éléments ;
  • sinon, chaque élément est construit par défaut. Pour les types trivialement constructibles (tels que int, float, etc.), cela équivaut à ne pas les initialiser.

Cette fonction a été introduite dans Qt 6.8.

void QList::shrink_to_fit()

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

[constexpr noexcept] qsizetype QList::size() const

Renvoie le nombre d'éléments de la liste.

Voir aussi isEmpty() et resize().

[since 6.0] QList<T> QList::sliced(qsizetype pos, qsizetype n) const

Renvoie une sous-liste contenant n éléments de cette liste, à partir de la position pos.

Remarque : le comportement est indéfini lorsque pos < 0, n < 0 ou pos + n > size().

Cette fonction a été introduite dans Qt 6.0.

Voir aussi first() et last().

[since 6.0] QList<T> QList::sliced(qsizetype pos) const

Renvoie une sous-liste contenant les éléments de cette liste à partir de la position pos et jusqu'à la fin.

Remarque : le comportement est indéfini lorsque pos < 0 ou pos > size().

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

Cette fonction a été introduite dans Qt 6.0.

Voir aussi first() et last().

void QList::squeeze()

Libère la mémoire qui n'est pas nécessaire pour stocker les éléments.

Le seul but de cette fonction est de fournir un moyen d'affiner l'utilisation de la mémoire de QList. En général, vous n'aurez que rarement besoin d'appeler cette fonction.

Voir aussi reserve() et capacity().

bool QList::startsWith(QList<T>::parameter_type value) const

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

Voir aussi isEmpty() et first().

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

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

void QList::swapItemsAt(qsizetype i, qsizetype j)

Échangez l'élément à la position d'index i avec l'élément à la position d'index j. Cette fonction suppose que i et j sont au moins égaux à 0 et inférieurs à size(). Pour éviter un échec, vérifiez que i et j sont au moins égaux à 0 et inférieurs à size().

T QList::takeAt(qsizetype i)

Supprime l'élément à la position d'index i et le renvoie.

Équivalent à

T t = at(i);
remove(i);
return t;

Remarque : lorsque QList n'est pas implicitement partagé, cette fonction n'invalide que les itérateurs situés à la position spécifiée ou après celle-ci.

Voir également takeFirst() et takeLast().

QList<T>::value_type QList::takeFirst()

Supprime le premier élément de la liste et le renvoie. Cette fonction suppose que la liste n'est pas vide. Pour éviter un échec, appelez isEmpty() avant d'appeler cette fonction.

Voir également takeLast() et removeFirst().

QList<T>::value_type QList::takeLast()

Supprime le dernier élément de la liste et le renvoie. Cette fonction suppose que la liste n'est pas vide. Pour éviter un échec, appelez isEmpty() avant d'appeler cette fonction.

Si vous n'utilisez pas la valeur de retour, removeLast() est plus efficace.

Voir également takeFirst() et removeLast().

T QList::value(qsizetype i) const

Renvoie la valeur à la position d'index i dans la liste.

Si l'index i est hors limites, la fonction renvoie une valeur construite par défaut. Si vous êtes certain que i est dans les limites, vous pouvez utiliser at() à la place, ce qui est légèrement plus rapide.

Voir aussi at() et operator[]().

T QList::value(qsizetype i, QList<T>::parameter_type defaultValue) const

Si l'index i est hors limites, la fonction renvoie defaultValue.

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

bool QList::operator!=(const QList<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 ait une implémentation de operator==().

Voir également operator==().

QList<T> QList::operator+(const QList<T> &other) const &

QList<T> QList::operator+(const QList<T> &other) &&

QList<T> QList::operator+(QList<T> &&other) const &

QList<T> QList::operator+(QList<T> &&other) &&

Renvoie une liste contenant tous les éléments de cette liste suivis de tous les éléments de la liste other.

Voir aussi operator+=().

QList<T> &QList::operator+=(const QList<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().

[since 6.0] QList<T> &QList::operator+=(QList<T> &&other)

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

Cette fonction a été introduite dans Qt 6.0.

Voir aussi operator+() et append().

QList<T> &QList::operator+=(QList<T>::parameter_type value)

Ajoute value à la liste.

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

Voir aussi append() et operator<<().

QList<T> &QList::operator+=(QList<T>::rvalue_ref value)

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

Voir aussi append() et operator<<().

bool QList::operator<(const QList<T> &other) const

Renvoie true si cette liste est lexicalement inférieure à other; sinon, renvoie false.

Cette fonction nécessite que le type de valeur ait une implémentation de operator<().

QList<T> &QList::operator<<(QList<T>::parameter_type value)

Ajoute value à la liste et renvoie une référence à cette liste.

Voir aussi append() et operator+=().

QList<T> &QList::operator<<(const QList<T> &other)

Ajoute other à la liste et renvoie une référence à la liste.

[since 6.0] QList<T> &QList::operator<<(QList<T> &&other)

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

Cette fonction a été introduite dans Qt 6.0.

QList<T> &QList::operator<<(QList<T>::rvalue_ref value)

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

Voir aussi append() et operator+=().

bool QList::operator<=(const QList<T> &other) const

Renvoie true si cette liste est lexicalement inférieure ou égale à other; sinon, renvoie false.

Cette fonction nécessite que le type de valeur ait une implémentation de operator<().

[default] QList<T> &QList::operator=(QList<T> &&other)

Move-assigne other à cette instance QList.

[default] QList<T> &QList::operator=(const QList<T> &other)

Affecte other à cette liste et renvoie une référence à cette liste.

QList<T> &QList::operator=(std::initializer_list<T> args)

Attribue la collection de valeurs de args à cette instance QList.

bool QList::operator==(const QList<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 ait une implémentation de operator==().

Voir également operator!=().

bool QList::operator>(const QList<T> &other) const

Renvoie true si cette liste est lexicalement plus grande que other; sinon, renvoie false.

Cette fonction nécessite que le type de valeur ait une implémentation de operator<().

bool QList::operator>=(const QList<T> &other) const

Renvoie true si cette liste est lexicalement supérieure ou égale à other; sinon, renvoie false.

Cette fonction nécessite que le type de valeur ait une implémentation de operator<().

QList<T>::reference QList::operator[](qsizetype i)

Renvoie l'élément à la position d'index i sous la forme d'une référence modifiable.

i doit être une position d'index valide dans la liste (c'est-à-dire 0 <= i < size()).

Notez que l'utilisation d'opérateurs non-const peut amener QList à effectuer une copie profonde.

Voir également at() et value().

[noexcept] QList<T>::const_reference QList::operator[](qsizetype i) const

Identique à at(i).

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

Non-membres apparentés

[since 6.1] template <typename T, typename AT> qsizetype erase(QList<T> &list, const AT &t)

Supprime de la liste list tous les éléments dont la comparaison est égale à t. Renvoie le nombre d'éléments supprimés, le cas échéant.

Remarque : contrairement à QList::removeAll, t n'est pas autorisé à faire référence à un élément à l'intérieur de list. Si vous ne pouvez pas être sûr que ce n'est pas le cas, prenez une copie de t et appelez cette fonction avec la copie.

Cette fonction a été introduite dans Qt 6.1.

Voir aussi QList::removeAll() et erase_if.

[since 6.1] template <typename T, typename Predicate> qsizetype erase_if(QList<T> &list, Predicate pred)

Supprime de la liste list tous les éléments pour lesquels le prédicat pred renvoie la valeur "true". Renvoie le nombre d'éléments supprimés, le cas échéant.

Cette fonction a été introduite dans Qt 6.1.

Voir aussi erase.

[noexcept(...)] template <typename T> size_t qHash(const QList<T> &key, size_t seed = 0)

Renvoie la valeur de hachage pour key, en utilisant seed comme base de calcul.

Le type T doit être pris en charge par qHash().

Remarque : cette fonction est noexcept lorsque noexcept(qHashRange(key.cbegin(), key.cend(), seed)) est true.

template <typename T> QDataStream &operator<<(QDataStream &out, const QList<T> &list)

Écrit la liste 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.

[since 6.9] auto operator<=>(const QList<T> &lhs, const QList<T> &rhs)

Compare les contenus de lhs et rhs de manière lexicographique. Renvoie le résultat du type de catégorie applicable le plus fort, c'est-à-dire decltype(lhs[0] <=> rhs[0]) si operator<=>() est disponible pour le type T; sinon std::weak_ordering.

Remarque : cet opérateur n'est disponible qu'en mode C++20 et lorsque le type sous-jacent T modélise le concept std::three_way_comparable ou fournit operator<().

Cette fonction a été introduite dans Qt 6.9.

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

Lit une liste 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.