QList Class
template <typename T> class QListLa classe QList est une classe modèle qui fournit un tableau dynamique. En savoir plus...
| En-tête : | #include <QList> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
| Hérité par : |
- Liste de tous les membres, y compris les membres hérités
- Membres obsolètes
- QList fait partie des classes de conteneurs et des classes implicitement partagées.
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 taille, QList<T>::parameter_type valeur) | |
(since 6.8) | QList(qsizetype taille, Qt::Initialization) |
| QList(const QList<T>&other) | |
| QList(QList<T>&&other) | |
| ~QList() | |
| void | append(QList<T>::parameter_type valeur) |
(since 6.0) void | append(QList<T>&&value) |
| void | append(QList<T>::rvalue_ref valeur) |
| void | append(const QList<T>&value) |
(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>::reference | 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&value) const |
| qsizetype | count(const AT&value) const |
| qsizetype | count() const |
| QList<T>::const_reverse_iterator | crbegin() const |
| QList<T>::const_reverse_iterator | crend() const |
| QList<T>::pointer | data() |
| QList<T>::const_pointer | data() const |
| void | detach() |
| 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>::reference | 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&value, 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>::type_paramètre valeur) |
| void | prepend(QList<T>::rvalue_ref valeur) |
| void | push_back(QList<T>::parameter_type valeur) |
| void | push_back(QList<T>::rvalue_ref valeur) |
| void | push_front(QList<T>::parameter_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 | 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 value) |
| void | reserve(qsizetype taille) |
(since 6.0) void | resize(qsizetype taille) |
(since 6.0) void | resize(qsizetype size, 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>&other) |
| 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 valeurParDéfaut) const |
| bool | operator!=(const QList<T>&other) const |
| QList<T> | operator+(QList<T>&&other) && |
| QList<T> | operator+(const QList<T>&other) && |
| QList<T> | operator+(QList<T> &&autre) const & |
| QList<T> | operator+(const QList<T>&other) const & |
| QList<T> & | operator+=(const QList<T>&autre) |
(since 6.0) QList<T> & | operator+=(QList<T>&&other) |
| QList<T> & | operator+=(QList<T>::parameter_type value) |
| QList<T> & | operator+=(QList<T>::rvalue_ref valeur) |
| bool | operator<(const QList<T>&other) const |
| QList<T> & | operator<<(QList<T>::parameter_type value) |
| QList<T> & | operator<<(const QList<T>&other) |
(since 6.0) QList<T> & | operator<<(QList<T> &&autre) |
| QList<T> & | operator<<(QList<T>::rvalue_ref value) |
| bool | operator<=(const QList<T>&other) const |
| QList<T> & | operator=(QList<T>&&other) |
| QList<T> & | operator=(const QList<T>&other) |
| QList<T> & | operator=(std::initializer_list<T> args) |
| bool | operator==(const QList<T>&other) const |
| bool | operator>(const QList<T>&other) const |
| bool | operator>=(const QList<T>&other) const |
| QList<T>::reference | operator[](qsizetype i) |
| QList<T>::const_reference | operator[](qsizetype i) const |
Membres publics statiques
(since 6.8) qsizetype | maxSize() |
Éléments non membres associés
(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, où T spécifie le type des éléments stockés dans la liste. Elle stocke ses éléments dans des emplacements mémoire adjacents et offre un accès rapide basé sur un index. QVector<T> était autrefois une classe distincte dans Qt 5, mais elle n'est désormais qu'un simple alias de QList.
QList<T> et QVarLengthArray<T> offrent 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 Elle fournit un tableau qui réserve de l’espace sur la pile, mais qui peut s’étendre dynamiquement sur le tas si nécessaire. Elle est idéale pour les conteneurs de courte durée, généralement de petite taille.
- Si vous avez besoin d’une véritable liste chaînée, qui garantit des insertions en temps constant au milieu de la liste et utilise des itérateurs pour accéder aux éléments plutôt que des index, utilisez std::list.
Remarque : QList et QVarLengthArray garantissent toutes deux une structure de tableau compatible avec le C.
Remarque : dans Qt 5,QList ne disposait pas toujours d’une structure de tableau compatible avec le C et nous recommandions souvent 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 désormais la même implémentation et peuvent être utilisées de manière interchangeable.
Voici un exemple de QList stockant des entiers et de QList stockant des valeurs de type ` QString ` :
QList stocke ses éléments dans un tableau occupant une mémoire contiguë. En général, les listes sont créées avec une taille initiale. Par exemple, le code suivant construit une QList contenant 200 éléments :
Les éléments sont automatiquement initialisés avec une valeur par défaut. Si vous souhaitez initialiser la liste avec une autre valeur, transmettez cette valeur en tant que deuxième argument au constructeur :
Vous pouvez également appeler la méthode ` fill()` à tout moment pour remplir la liste avec une valeur.
QList utilise des index commençant à 0, tout comme les tableaux en C++. Pour accéder à l’élément situé à un index donné, vous pouvez utiliser l’opérateur [](). Sur les listes non-const, l’opérateur []() renvoie une référence à l’élément qui peut être utilisée à gauche d’une affectation :
if (list[0] == "Liz")
list[0] = "Elizabeth";Pour un accès en lecture seule, une autre syntaxe 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 l’opérateur [](), car il ne provoque jamais de copie profonde.
Une autre façon d’accéder aux données stockées dans une QList consiste à appeler la fonction ` data()`. Cette fonction renvoie un pointeur vers 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. Ce pointeur est également utile si vous devez passer une QList à une fonction qui accepte un tableau C++ classique.
Si vous souhaitez rechercher toutes les occurrences d’une valeur particulière dans une liste, utilisez ` indexOf()` ou ` lastIndexOf()`. La première effectue une recherche vers l’avant à partir d’un indice donné, tandis que la seconde effectue une recherche vers l’arrière. Les deux renvoient l’indice de l’élément correspondant s’il en existe un ; sinon, elles 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 souhaitez connaître le nombre d’occurrences d’une valeur particulière 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 permettant des insertions et des suppressions rapides au milieu de la liste, utilisez plutôt std::list.
Contrairement aux tableaux C++ classiques, les QList peuvent être redimensionnées à tout moment en appelant ` resize()`. Si la nouvelle taille est supérieure à l'ancienne, QList peut être amenée à réallouer l'intégralité de 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 ne le nécessitent réellement.
Si vous construisez une QList progressivement et que vous connaissez à l’avance le nombre approximatif d’éléments qu’elle contiendra, vous pouvez appeler ` reserve()` pour demander à QList de préallouer une certaine quantité de mémoire. Vous pouvez également appeler ` capacity()` pour connaître la quantité de mémoire que la QList a effectivement allouée.
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 permettra pas, par exemple, de stocker un ` QWidget ` en tant que valeur ; stockez plutôt 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 au cas par cas pour chaque fonction.
Pour parcourir les éléments, consultez la section « Parcourir les conteneurs ». Pour utiliser QList avec les fonctions de l’en-tête ` <algorithm> `, telles que ` std::sort()`, ` std::reverse()` et ` std::count_if()`, consultez la section « Conteneurs Qt et algorithmes std ». Pour utiliser QList avec les algorithmes génériques propres à Qt, tels que ` qJoin()` et ` qDeleteAll()`, consultez la section « <QtAlgorithms> ».
Outre QList, Qt propose également QVarLengthArray, une classe de très bas niveau dotée de peu de fonctionnalités et optimisée pour la vitesse.
Plus d’informations sur l’utilisation des conteneurs Qt
Pour une analyse détaillée comparant les conteneurs Qt entre eux et avec les conteneurs STL, consultez la section Comprendre les conteneurs Qt.
Taille maximale et conditions de manque 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 de la surcharge nécessaire à la gestion du bloc de données. Par conséquent, vous pouvez vous attendre à une taille maximale de 2 Go moins la surcharge sur les plateformes 32 bits, et de 2^63 octets moins la surcharge sur les plateformes 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é.
En cas d'échec de l'allocation de mémoire, QList utilise la macro ` Q_CHECK_PTR `, qui lève une exception ` std::bad_alloc ` si l'application est compilée avec le support des exceptions. Si les exceptions sont désactivées, le manque de mémoire entraîne un comportement indéfini.
Notez que le système d’exploitation peut imposer des limites supplémentaires aux applications occupant beaucoup de mémoire allouée, en particulier des blocs contigus de grande taille. Ces considérations, la configuration d’un tel comportement ou toute mesure d’atténuation ne relèvent pas du champ d’application de l’API Qt.
Documentation sur les types de membres
[alias] QList::ConstIterator
Synonyme, dans le style Qt, de « QList::const_iterator ».
[alias] QList::Iterator
Synonyme de « QList::iterator » dans le style Qt XML.
[alias] QList::const_pointer
Prévu pour assurer la compatibilité avec STL.
[alias] QList::const_reference
Prévu pour assurer la compatibilité avec STL.
[alias] QList::const_reverse_iterator
Le typedef `QList::const_reverse_iterator` fournit un itérateur inverse constant de type STL pour ` QList`.
Avertissement : 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 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 ».
Avertissement : 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 également QList::rbegin(), QList::rend(), QList::reverse_iterator et QList::const_iterator.
[alias] QList::difference_type
Prévu pour assurer la compatibilité avec STL.
[alias] QList::parameter_type
[alias] QList::pointer
Prévu pour assurer la compatibilité avec STL.
[alias] QList::reference
Prévu pour assurer la compatibilité avec STL.
[alias] QList::reverse_iterator
Le typedef `QList::reverse_iterator` fournit un itérateur inversé non-const de type STL pour ` QList`.
Avertissement : 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 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 ».
Avertissement : 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 également QList::rbegin(), QList::rend(), QList::const_reverse_iterator et QList::iterator.
[alias] QList::rvalue_ref
[alias] QList::size_type
Prévu pour assurer la compatibilité avec STL.
[alias] QList::value_type
Fourni pour assurer la compatibilité avec la STL.
Documentation des fonctions membres
[constexpr noexcept default] QList::QList()
Crée une liste vide.
Voir aussi resize().
[explicit] QList::QList(qsizetype size)
Crée une liste dont la taille initiale est de size éléments.
Les éléments sont initialisés avec une valeur construite par défaut.
Voir également resize().
QList::QList(std::initializer_list<T> args)
Crée une liste à partir de la liste d'initialisation std::initializer_list fournie par args.
template <typename InputIterator, QList<T>::if_input_iterator<InputIterator> = true> QList::QList(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.
Contraintes
Ne participe à la résolution des surcharges que si InputIterator répond aux exigences d’un LegacyInputIterator.
QList::QList(qsizetype size, QList<T>::parameter_type value)
Crée une liste dont la taille initiale est de size éléments. Chaque élément est initialisé à value.
Voir également resize() et fill().
[since 6.8] QList::QList(qsizetype size, Qt::Initialization)
Crée une liste dont la taille initiale est de size.
QList tentera de ne pas initialiser les éléments.
Plus précisément :
- si
Tdispose d’un constructeur acceptantQt::Uninitialized, ce constructeur sera utilisé pour initialiser les éléments ; - sinon, chaque élément est initialisé par défaut. Pour les types facilement constructibles (tels que
int,float, etc.), cela revient à ne pas les initialiser.
Cette fonction a été introduite dans Qt 6.8.
Voir également resizeForOverwrite().
[implicit] QList::QList(const QList<T> &other)
Crée une copie de ` other`.
Cette opération s'effectue en temps constant, car QList est implicitement partagée. Cela rend le retour d'une QList depuis une fonction très rapide. 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=().
[implicit] QList::QList(QList<T> &&other)
Crée une instance de QList par « move », de sorte qu'elle pointe vers le même objet que celui vers lequel pointait other.
[implicit] QList::~QList()
Supprime 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 à attribuer value au nouvel élément de fin 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'étendre sans avoir à réallouer la liste entière à 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 également ` 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 également 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 contenus dans 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 celle-ci 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 celle-ci est partagée.
Remarque : le comportement est indéfini si l’un des deux arguments est un itérateur sur *this.
Contraintes
Ne participe à la résolution des surcharges que 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 situé à l'index i dans la liste.
i i doit être une position d'index valide dans la liste (c'est-à-dire 0 <= < ()). size
Voir également value() et operator[]().
QList<T>::reference QList::back()
Cette fonction est fournie à des fins de compatibilité avec la 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 type STL pointant vers le premier élément de la liste.
Avertissement : l’itérateur renvoyé est invalidé en cas de détachement ou lorsque la fonction QList est modifiée.
Voir également ` 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 maximal d'éléments pouvant être stockés dans la liste sans nécessiter de réallocation.
Cette fonction a pour seul but de permettre d'ajuster avec précision l'utilisation de la mémoire par QList. En général, vous n'aurez que très rarement besoin d'appeler cette fonction. Si vous souhaitez connaître le nombre d'éléments contenus dans la liste, appelez size().
Remarque : une liste allouée de manière statique indiquera une capacité de 0, même si elle n’est pas vide.
Avertissement : l’emplacement de l’ espace libre dans le bloc de mémoire alloué n’est pas défini. En d’autres termes, vous ne devez pas supposer que la mémoire libre se trouve toujours à 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 de type STL constant pointant vers le premier élément de la liste.
Avertissement : l'itérateur renvoyé est invalidé en cas de détachement ou lorsque l'QList est modifiée.
Voir également ` begin()` et ` cend()`.
[noexcept] QList<T>::const_iterator QList::cend() const
Renvoie un itérateur constant de type STL pointant juste après le dernier élément de la liste.
Avertissement : l'itérateur renvoyé est invalidé en cas de détachement ou lorsque l'QList est modifiée.
Voir également ` cbegin()` et ` end()`.
void QList::clear()
Supprime tous les éléments de la liste.
Si cette liste n'est pas partagée, l'capacity() est conservée. Utilisez squeeze() pour libérer de la capacité excédentaire.
Remarque : dans les versions de Qt antérieures à la version 5.7 (pour ` QVector`) et à la version 6.0 (pour ` QList`), cette fonction libérait la mémoire utilisée par la liste au lieu de préserver sa capacité.
Voir aussi resize() et squeeze().
[noexcept] QList<T>::const_iterator QList::constBegin() const
Renvoie un itérateur de type STL constant pointant vers le premier élément de la liste.
Avertissement : l'itérateur renvoyé est invalidé en cas de détachement ou lorsque l'QList est modifiée.
Voir aussi ` begin()` et ` constEnd()`.
[noexcept] QList<T>::const_pointer QList::constData() const
Renvoie un pointeur const vers les données stockées dans la liste. Ce pointeur peut être utilisé pour accéder aux éléments de la liste.
Avertissement : le pointeur est invalidé en cas de détachement ou lorsque l'QList est modifiée.
Cette fonction est particulièrement utile pour transmettre une liste à une fonction qui accepte un tableau C++ classique.
Voir également ` data()` et ` operator[]()`.
[noexcept] QList<T>::const_iterator QList::constEnd() const
Renvoie un itérateur de type STL constant pointant juste après le dernier élément de la liste.
Avertissement : l'itérateur renvoyé est invalidé en cas de détachement ou lorsque l'QList est modifiée.
Voir également ` constBegin()` et ` end()`.
[noexcept] const T &QList::constFirst() const
Renvoie une référence constante vers le premier élément de la liste. Cette fonction suppose que la liste n'est pas vide.
Voir également constLast(), isEmpty() et first().
[noexcept] const T &QList::constLast() const
Renvoie une référence constante vers le dernier élément de la liste. Cette fonction suppose que la liste n'est pas vide.
Voir également 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 dispose d’une implémentation de ` operator==()`.
Voir également 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 nécessite que le type de valeur dispose d'une implémentation de ` operator==()`.
Voir également ` 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 inversé de type STL (const) pointant vers le premier élément de la liste, dans l'ordre inverse.
Avertissement : l'itérateur renvoyé est invalidé en cas de détachement ou lorsque l'QList est modifiée.
Voir également ` begin()`, ` rbegin()` et ` rend()`.
[noexcept] QList<T>::const_reverse_iterator QList::crend() const
Renvoie un itérateur inversé de type STL (const) pointant juste après le dernier élément de la liste, dans l'ordre inverse.
Avertissement : l’itérateur renvoyé est invalidé en cas de détachement ou lorsque l’ QList est modifiée.
Voir également ` end()`, ` rend()` et ` rbegin()`.
QList<T>::pointer QList::data()
Renvoie un pointeur vers les données stockées dans la liste. Ce pointeur permet d'accéder aux éléments de la liste et de les modifier.
Exemple :
QList<int> list(10);
int *data = list.data();
for (qsizetype i = 0; i < 10; ++i)
data[i] = 2 * i;Avertissement : le pointeur devient invalide en cas de détachement ou lorsque l'QList est modifiée.
Cette fonction est surtout utile pour transmettre une liste à une fonction qui accepte un tableau C++ classique.
Voir également ` constData()` et ` operator[]()`.
[noexcept] QList<T>::const_pointer QList::data() const
Il s'agit d'une fonction surchargée.
void QList::detach()
Garantit que les données de cette instance QList ne sont plus partagées avec d'autres instances.
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 in situ à l'aide de args comme arguments de construction.
Renvoie un itérateur vers le nouvel élément.
Exemple :
Remarque : il est garanti que l'élément sera créé sur place au début, mais par la suite, il pourra être copié ou déplacé vers la bonne position.
Voir également 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 de 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 créé sur place à l'aide de l'args, qui sert d'arguments pour sa création.
Renvoie une référence au nouvel élément.
Exemple :
QList<QString> list{"un", "deux"};
list.emplaceBack(3, 'a');
qDebug() << list;
// liste : ["un", "deux", "aaa"]Il est également possible d'accéder à un objet nouvellement créé en utilisant la référence renvoyée :
Cela revient à list.emplace(list.size(), args).
Voir également emplace.
[noexcept] bool QList::empty() const
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à ` isEmpty()`, qui renvoie ` true ` si la liste est vide ; dans le cas contraire, elle renvoie ` false`.
QList<T>::iterator QList::end()
Renvoie un itérateur de type STL pointant juste après le dernier élément de la liste.
Avertissement : l'itérateur renvoyé est invalidé en cas de détachement ou lorsque la fonction QList est modifiée.
Voir également ` 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 que son dernier élément est égal à value; sinon, renvoie false.
Voir également 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éserve la capacité de la liste et ne réduit pas la quantité de mémoire allouée. Pour réduire la capacité excédentaire et libérer autant de mémoire que possible, appelez squeeze().
Remarque : lorsque ` QList ` n’est pas implicitement partagée, cette fonction invalide uniquement 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'à (sans inclure) 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’éléments préserve la capacité de la liste et ne réduit pas la quantité de mémoire allouée. Pour réduire la capacité excédentaire et libérer autant de mémoire que possible, appelez squeeze().
Remarque : lorsque QList n’est pas implicitement partagée, cette fonction invalide uniquement 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 la valeur « value » à tous les éléments de la liste. Si la valeur « size » est différente de -1 (valeur par défaut), la liste est préalablement redimensionnée à la valeur « 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 également last(), isEmpty() et constFirst().
[since 6.0] QList<T> QList::first(qsizetype n) const
Renvoie une sous-liste contenant les x n premiers éléments 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 à des fins de compatibilité avec la STL. Elle équivaut à ` 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 l'index de la première occurrence de « value » dans la liste, en effectuant une recherche vers l'avant à partir de l'index « from ». Renvoie -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 -1Cette fonction nécessite que le type de valeur dispose d’une implémentation de la méthode ` 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 à l'index i dans la liste. Si i vaut 0, la valeur est ajoutée au début de la liste. Si i vaut size(), la valeur est ajoutée à la fin de 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 d’une position vers l’avant en mémoire tous les éléments situés aux indices i et au-delà. Si vous souhaitez une classe de conteneur fournissant 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 exemplaires de value devant l'élément pointé par l'itérateur before. Renvoie un itérateur pointant vers 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. Renvoie un itérateur pointant vers l'élément inséré.
QList<T>::iterator QList::insert(qsizetype i, qsizetype count, QList<T>::parameter_type value)
Insère count exemplaires 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 égale à 0 ; sinon, renvoie false.
Voir également size() et resize().
T &QList::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(), isEmpty() et constLast().
[since 6.0] QList<T> QList::last(qsizetype n) const
Renvoie une sous-liste contenant les x éléments de cette liste dont la valeur « n » est la plus récente.
Remarque : le comportement est indéfini lorsque ` n < 0` ou ` n > size()`.
Cette fonction a été introduite dans Qt 6.0.
Voir également ` 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 l'index de la dernière occurrence de la valeur value dans la liste, en effectuant une recherche à rebours à partir de l'index from. Si from est égal à -1 (valeur par défaut), la recherche commence à partir du 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 -1Cette fonction nécessite que le type de valeur dispose d’une implémentation de operator==().
Voir également indexOf().
[constexpr noexcept] qsizetype QList::length() const
Identique à size() et count().
Voir également size() et count().
[static constexpr, since 6.8] qsizetype QList::maxSize()
[constexpr noexcept, since 6.8] qsizetype QList::max_size() const
Elle renvoie le nombre maximal d'éléments que la liste peut théoriquement contenir. En pratique, ce nombre peut être bien inférieur, car il est limité par la quantité de mémoire disponible sur 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 les éléments de cette liste, à partir de la position pos. Si length vaut -1 (valeur par défaut), tous les éléments situés après pos sont inclus ; sinon, length éléments (ou tous les éléments restants s'il y en a moins que length ) sont inclus.
void QList::move(qsizetype from, qsizetype to)
Déplace l'élément situé à l'index from vers l'index to.
from to et doivent se situer dans les limites autorisées.
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 à des fins de compatibilité avec la STL. Elle équivaut à ` removeLast()`.
[noexcept] void QList::pop_front()
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à ` removeFirst()`.
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"]Cela revient au même 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 de la liste et de s’étendre dans cette direction sans réallouer ni déplacer les données à chaque opération. Cependant, si vous souhaitez une classe de conteneur garantissant un temps constant pour l’ajout en tête, utilisez plutôt std::list, mais privilégiez QList dans le cas contraire.
Voir également append() et insert().
void QList::push_back(QList<T>::parameter_type value)
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à `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 à des fins de compatibilité avec la STL. Elle équivaut à `prepend(value)`.
QList<T>::reverse_iterator QList::rbegin()
Renvoie un itérateur inversé de type STL pointant vers le premier élément de la liste, dans l'ordre inverse.
Avertissement : l'itérateur renvoyé est invalidé en cas de détachement ou lorsque l'QList est modifiée.
Voir également 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 n éléments de la liste, à partir de l'index i.
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 réduire la capacité excédentaire et libérer autant de mémoire que possible, appelez la fonction ` squeeze()`.
Remarque : lorsque ` QList ` n’est pas implicitement partagé, cette fonction invalide uniquement 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 valeur 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 réduire la capacité excédentaire et libérer autant de mémoire que possible, appelez la fonction squeeze().
Voir également removeOne().
void QList::removeAt(qsizetype i)
Supprime l'élément situé à l'index i. Équivalent à
remove(i);La suppression d’un élément préserve la capacité de la liste et ne réduit pas la quantité de mémoire allouée. Pour réduire la capacité excédentaire et libérer autant de mémoire que possible, appelez squeeze().
Remarque : lorsque ` QList ` n'est pas implicitement partagée, cette fonction invalide uniquement 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. L'appel de cette fonction équivaut à l'appel de `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éserve la capacité de la liste et ne réduit pas la quantité de mémoire allouée. Pour réduire la capacité excédentaire 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 « vrai ». Renvoie le nombre d'éléments supprimés, le cas échéant.
Cette fonction a été introduite dans Qt 6.1.
Voir également removeAll().
[noexcept] void QList::removeLast()
Supprime le dernier élément de la liste. L'appel de cette fonction équivaut à l'appel de `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éserve la capacité de la liste et ne réduit pas la quantité de mémoire allouée. Pour réduire la capacité excédentaire et libérer autant de mémoire que possible, appelez ` squeeze()`.
Voir également 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 valeur est égale à « t ». Indique si un élément a effectivement été supprimé.
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 réduire la capacité excédentaire et libérer autant de mémoire que possible, appelez la fonction squeeze().
Voir également removeAll().
QList<T>::reverse_iterator QList::rend()
Renvoie un itérateur inversé de type STL pointant juste après le dernier élément de la liste, dans l'ordre inverse.
Avertissement : l'itérateur renvoyé est invalidé en cas de détachement ou lorsque l'QList est modifiée.
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 situé à l'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 l'espace nécessaire, il est généralement préférable d'utiliser une borne supérieure égale à ` size`, ou une estimation haute de la taille la plus probable, si une borne supérieure stricte s'avère nettement supérieure à cette valeur. Si ` size ` est une sous-estimation, la liste s’agrandira selon les besoins dès que la taille réservée sera dépassée, ce qui peut entraîner une allocation plus importante que ne l’aurait été votre meilleure surestimation et ralentira l’opération qui la déclenche.
Avertissement : la fonction `reserve ()` réserve de la mémoire mais ne modifie pas la taille de la liste. L’accès aux données situées au-delà de la fin actuelle de la liste entraîne un comportement indéfini. Si vous devez accéder à de la mémoire située 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)
Définit 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 soit avec une valeur construite par défaut, soit avec ` c`. Si ` size ` est inférieur à la taille actuelle, des éléments sont supprimés à la fin.
Si cette liste n’est pas partagée, la fonction ` capacity()` est conservée. Utilisez ` squeeze()` pour libérer la capacité excédentaire.
Remarque : dans les versions de Qt antérieures à la version 5.7 (pour QVector; QList ne disposait pas de la fonction resize() avant la version 6.0), cette fonction libérait la mémoire utilisée par la liste au lieu de préserver sa capacité.
Ces fonctions ont été introduites dans Qt 6.0.
Voir également size().
[since 6.8] void QList::resizeForOverwrite(qsizetype size)
Définit la taille de la liste à size. Si size est inférieure à la taille actuelle, des éléments sont supprimés à la fin. Si size est supérieure à 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
Tdispose d’un constructeur acceptantQt::Uninitialized, ce constructeur sera utilisé pour initialiser les éléments ; - sinon, chaque élément est initialisé par défaut. Pour les types facilement constructibles (tels que
int,float, etc.), cela revient à ne pas les initialiser.
Cette fonction a été introduite dans Qt 6.8.
void QList::shrink_to_fit()
Cette fonction est fournie à des fins de compatibilité avec la STL. Elle équivaut à ` squeeze()`.
[constexpr noexcept] qsizetype QList::size() const
Renvoie le nombre d'éléments de la liste.
Voir également 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 également 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 jusqu'à la fin de celle-ci.
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 également first() et last().
void QList::squeeze()
Libère toute la mémoire qui n'est pas nécessaire au stockage des éléments.
Le seul objectif de cette fonction est de permettre un réglage fin de l'utilisation de la mémoire par QList. En général, vous n'aurez que très rarement besoin d'appeler cette fonction.
Voir également 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 également isEmpty() et first().
[noexcept] void QList::swap(QList<T> &other)
Permute cette liste avec celle de other. Cette opération est très rapide et ne pose jamais de problème.
void QList::swapItemsAt(qsizetype i, qsizetype j)
Échange la valeur située à l'indice i avec celle située à l'indice j. Cette fonction suppose que i et j sont toutes deux au moins égales à 0 mais inférieures à size(). Pour éviter tout échec, vérifiez que i et j sont toutes deux au moins égales à 0 et inférieures à size().
T QList::takeAt(qsizetype i)
Supprime l'élément situé à l'index i et le renvoie.
Équivalent à
T t = at(i);
remove(i);
return t;Remarque : lorsque QList n’est pas implicitement partagé, cette fonction invalide uniquement 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 toute erreur, appelez la fonction isEmpty() avant d'appeler cette fonction.
Voir également takeLast() et removeFirst().
QList<T>::value_type QList::takeLast()
Supprime l'élément de fin de liste et le renvoie. Cette fonction suppose que la liste n'est pas vide. Pour éviter toute erreur, appelez ` isEmpty()` avant d'appeler cette fonction.
Si vous n'utilisez pas la valeur de retour, la fonction ` removeLast()` est plus efficace.
Voir également takeFirst() et removeLast().
T QList::value(qsizetype i) const
Renvoie la valeur située à l'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 se trouve dans les limites, vous pouvez utiliser at() à la place, ce qui est légèrement plus rapide.
Voir également at() et operator[]().
T QList::value(qsizetype i, QList<T>::parameter_type defaultValue) const
Si l'indice « 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 dispose d’une implémentation de operator==().
Voir également operator==().
QList<T> QList::operator+(QList<T> &&other) &&
QList<T> QList::operator+(const QList<T> &other) &&
QList<T> QList::operator+(QList<T> &&other) const &
QList<T> QList::operator+(const QList<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+=().
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 également 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 également 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 également append() et operator<<().
QList<T> &QList::operator+=(QList<T>::rvalue_ref value)
Il s'agit d'une fonction surchargée.
Voir également 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 dispose d'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 également append() et operator+=().
QList<T> &QList::operator<<(const QList<T> &other)
Ajoute « other » à la liste et renvoie une référence à celle-ci.
[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 également 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 dispose d’une implémentation de operator<().
[implicit] QList<T> &QList::operator=(QList<T> &&other)
Cette commande attribue « other » à cette instance de « QList ».
[implicit] QList<T> &QList::operator=(const QList<T> &other)
Ajoute ` other ` à cette liste et renvoie une référence à cette liste.
QList<T> &QList::operator=(std::initializer_list<T> args)
Attribue l'ensemble des valeurs contenues dans args à cette instance de 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 dispose d’une implémentation de operator==().
Voir également operator!=().
bool QList::operator>(const QList<T> &other) const
Renvoie ` true ` si cette liste est lexicalement supérieure à ` other` ; sinon, renvoie ` false`.
Cette fonction nécessite que le type de valeur dispose d’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 dispose d’une implémentation de ` operator<()`.
QList<T>::reference QList::operator[](qsizetype i)
Renvoie l'élément situé à l'index i sous forme de référence modifiable.
i i doit être une position d'index valide dans la liste (c'est-à-dire 0 <= < ()). size
Notez que l'utilisation d'opérateurs non const peut entraîner une copie profonde de QList.
Voir également at() et value().
[noexcept] QList<T>::const_reference QList::operator[](qsizetype i) const
Comme sur (i).
Il s'agit d'une fonction surchargée.
Éléments non membres associé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 valeur est égale à t. Renvoie le nombre d'éléments supprimés, le cas échéant.
Remarque : contrairement à QList::removeAll, t ne doit pas être une référence à un élément contenu dans list. Si vous ne pouvez pas vous assurer que ce n’est pas le cas, effectuez une copie de t et appelez cette fonction avec cette copie.
Cette fonction a été introduite dans Qt 6.1.
Voir également 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 « vrai ». Renvoie le nombre d'éléments supprimés, le cas échéant.
Cette fonction a été introduite dans Qt 6.1.
Voir également erase.
[noexcept(...)] template <typename T> size_t qHash(const QList<T> &key, size_t seed = 0)
Renvoie la valeur de hachage de ` key`, en utilisant ` seed ` comme graine pour le calcul.
Le type T doit être pris en charge par qHash().
Remarque : cette fonction est de type « noexcept » lorsque noexcept(qHashRange(key.cbegin(), key.cend(), seed)) est égal à true.
template <typename T> QDataStream &operator<<(QDataStream &out, const QList<T> &list)
Écrit la liste 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.
[since 6.9] auto operator<=>(const QList<T> &lhs, const QList<T> &rhs)
Compare le contenu de lhs et rhs de manière lexicographique. Renvoie le résultat du type de catégorie le plus fort applicable, 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 uniquement lorsque le type sous-jacent T respecte 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 à partir du flux in et la stocke dans list.
Cette fonction nécessite que le type de valeur implémente 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.