Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Maîtriser std::list en C++ : Syntaxe, Fonctions et Exemples Pratiques

Qu'est-ce que std::list ?

En C++, std::list est un conteneur de séquence qui stocke les éléments sous forme de liste doublement chaînée. Cette structure permet d'insérer ou de supprimer des éléments à n'importe quelle position en temps constant, tout en permettant l'itération dans les deux sens. Bien qu'il n'offre pas d'accès aléatoire rapide comme std::vector, il excelle dans les scénarios nécessitant des insertions ou suppressions fréquentes.

Le conteneur gère automatiquement la mémoire via un allocateur, ce qui lui permet de croître ou de décroître aux deux extrémités pendant l'exécution.

Pourquoi utiliser std::list ?

Définition d'une liste

Pour utiliser std::list, incluez l'en-tête <list> :

#include <list> // Définition du template
// template<class T, class Alloc = std::allocator<T>> class list;

Paramètres :

Exemple 1 : Itération de base

#include <iostream>
#include <list>
int main() {
    std::list<int> my_list{12, 5, 10, 9};
    for (int x : my_list) {
        std::cout << x << '\n';
    }
}

Sortie :

Maîtriser std::list en C++ : Syntaxe, Fonctions et Exemples Pratiques

Opérations courantes sur std::list

FonctionDescription
insert()Insère un élément avant la position de l'itérateur.
push_back()Ajoute un élément à la fin.
push_front()Ajoute un élément au début.
pop_front()Supprime le premier élément.
size()Retourne le nombre d'éléments.
front()Accède au premier élément.
back()Accède au dernier élément.
reverse()Inverse l'ordre des éléments.
merge()Fusionne deux listes triées en une seule.

Constructeurs

Exemple 2 : Variantes de constructeurs

#include <iostream>
#include <list>
int main() {
    std::list<int> l; // vide
    std::list<int> l1{10, 20, 30};
    std::list<int> l2(l1.begin(), l1.end()); // copie par plage
    std::list<int> l3(std::move(l1)); // déplacement
    std::cout << "Taille de l : " << l.size() << '\n';
    std::cout << "Contenu de l2:\n";
    for (int x : l2) std::cout << x << '\n';
    std::cout << "Contenu de l3:\n";
    for (int x : l3) std::cout << x << '\n';
}

Sortie :

Maîtriser std::list en C++ : Syntaxe, Fonctions et Exemples Pratiques

Propriétés du conteneur

Insertion d'éléments

Utilisez push_front, push_back ou insert pour ajouter des éléments.

Exemple 3 : Insertions mixtes

#include <algorithm>
#include <iostream>
#include <list>
int main() {
    std::list<int> my_list{12, 5, 10, 9};
    my_list.push_front(11); // devant
    my_list.push_back(18); // derrière
    auto it = std::find(my_list.begin(), my_list.end(), 10);
    if (it != my_list.end()) {
        my_list.insert(it, 21); // avant 10
    }
    for (int x : my_list) std::cout << x << '\n';
}

Sortie :

Maîtriser std::list en C++ : Syntaxe, Fonctions et Exemples Pratiques

Suppression d'éléments

Utilisez erase pour supprimer des éléments uniques ou des plages.

Exemple 4 : Démonstration d'erase

#include <iostream>
#include <list>
int main() {
    std::list<int> my_list{12, 5, 10, 9};
    std::cout << "Avant suppression:\n";
    for (int x : my_list) std::cout << x << '\n';
    my_list.erase(my_list.begin()); // supprime le premier
    std::cout << "Après suppression:\n";
    for (int x : my_list) std::cout << x << '\n';
}

Sortie :

Maîtriser std::list en C++ : Syntaxe, Fonctions et Exemples Pratiques

Points clés à retenir

Langue C

  1. Opérateurs C++ expliqués : Types, exemples et programmes d'exemple
  2. Boucle do-while en C++ : Syntaxe, exemples pratiques et boucles imbriquées
  3. Maîtriser le switch-case en C++ : Syntaxe, utilisation et exemples pratiques
  4. Maîtriser l'allocation de tableaux dynamiques en C++ : Guide pratique avec exemples de code
  5. Maîtriser les pointeurs en C++ : Concepts, exemples et applications pratiques
  6. Surcharge d'opérateurs en C++ : Guide pratique avec exemples de code
  7. Les structures en C++ expliquées avec un exemple pratique
  8. Les Fonctions en C++ Expliquées avec des Exemples de Code Pratiques
  9. Struct vs Class en C++ : Différences Clés, Syntaxe et Cas d'Utilisation Optimaux