Méthode erase() des ensembles STL C++

C++C++Beginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous allez découvrir le fonctionnement d'un Multiset et son implantation dans le langage de programmation C++. Vous allez apprendre plus précisément comment utiliser la méthode erase() dans un Set ou un Multiset pour supprimer des éléments.

Créez le fichier de code C++

Utilisez l'éditeur de texte de votre choix pour créer un nouveau fichier de code C++ nommé main.cpp dans le répertoire du projet ~/project.

cd ~/project
touch main.cpp

Écrivez le code C++

Entrez le code suivant dans le fichier main.cpp. Les commentaires expliquent le code.

#include <iostream>
#include <bits/stdc++.h>

using namespace std;

//Fonction pour afficher les éléments du multiset en utilisant un itérateur
void show(multiset<int> s)
{
    //Déclaration d'un itérateur pour parcourir le multiset
    multiset<int>::iterator i;

    for (i = s.begin(); i!= s.end(); i++)
    {
        cout << *i << "  "; //Accès aux éléments du multiset en utilisant * car i stocke l'adresse de chaque élément
    }

    cout << endl;
}

int main()
{
    cout << "\n\nBienvenue dans le laboratoire de la méthode erase() des STL Set\n\n\n";
    cout << " =====  Programme pour démontrer le fonctionnement d'un Multiset, en CPP  ===== \n\n\n\n";

    cout << "*** Les Multisets sont similaires aux ensembles, avec l'exception que plusieurs éléments peuvent avoir les mêmes valeurs. *** \n\n";

    //Déclaration d'un multiset (ensemble d'entiers)
    multiset<int> s;

    //Remplissage des éléments en utilisant la méthode insert()
    cout << "\n\nRemplissage du Multiset avec des entiers dans un ordre aléatoire."; //Le multiset les stocke automatiquement dans l'ordre

    s.insert(5);
    s.insert(39);
    s.insert(5);
    s.insert(82);
    s.insert(39);
    s.insert(54);

    cout << "\n\nLe nombre d'éléments dans le Multiset est : " << s.size();

    cout << "\n\nLes éléments du Multiset sont : ";
    show(s);

    multiset<int>::iterator it;

    //Suppression de tous les éléments de l'ensemble qui sont inférieurs à 54
    s.erase(s.begin(), s.find(54));

    cout << "\n\nAprès avoir supprimé tous les éléments inférieurs à 54, le Multiset devient : ";

    for (it = s.begin(); it!= s.end(); it++)
    {
        cout << " " << *it;
    }

    cout << "\n\n\n";

    return 0;
}

Compilez et exécutez le code C++

Dans le terminal, compilez le fichier main.cpp en utilisant la commande g++, puis exécutez le fichier compilé.

g++ main.cpp -o main && ./main

Vous devriez voir la sortie suivante :

Bienvenue dans le laboratoire de la méthode erase() des STL Set


 =====  Programme pour démontrer le fonctionnement d'un Multiset, en CPP  =====



*** Les Multisets sont similaires aux ensembles, avec l'exception que plusieurs éléments peuvent avoir les mêmes valeurs. ***


Remplissage du Multiset avec des entiers dans un ordre aléatoire.
Le nombre d'éléments dans le Multiset est : 6

Les éléments du Multiset sont : 5  5  39  39  54  82

Après avoir supprimé tous les éléments inférieurs à 54, le Multiset devient :  54  82

Revoyez le code

Prenez le temps de revoir le code et assurez-vous de comprendre comment la méthode erase() est utilisée pour supprimer des éléments du Multiset.

//Suppression de tous les éléments de l'ensemble qui sont inférieurs à 54
s.erase(s.begin(), s.find(54));

Ce code utilise la méthode erase() pour supprimer tous les éléments du Multiset depuis le début jusqu'au (mais sans inclure) élément ayant la valeur 54. Ainsi, le Multiset résultant ne contient que les valeurs 54 et 82.

Sommaire

Dans ce laboratoire, vous avez appris à utiliser la méthode erase() dans un ensemble (Set) ou un multiset (Multiset) C++ pour supprimer des éléments. Vous avez également appris à parcourir un multiset à l'aide d'un itérateur et à afficher les éléments à l'aide de la méthode show(). Cela est utile lors du débogage ou du contrôle du contenu de structures de données complexes telles que les ensembles et les multisets.