Méthode erase() pour les cartes STL C++

C++Beginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, nous allons apprendre à utiliser la méthode erase() du conteneur Map du C++ STL pour supprimer une plage d'éléments dans une Map en langage de programmation C++.

Créer et remplir la carte avec des paires clé-valeur d'entiers

Créez un nouveau fichier C++ dans le répertoire ~/projet nommé main.cpp en utilisant la commande touch ~/projet/main.cpp et ouvrez-le avec votre éditeur de texte préféré.

Dans cette étape, nous allons créer une map et la remplir avec des paires clé-valeur d'entiers en utilisant la méthode insert(). La fonction make_pair() est utilisée pour insérer une paire clé-valeur dans la map. Les clés sont automatiquement triées dans l'ordre croissant des clés.

#include <iostream>
#include <map>

using namespace std;

int main()
{
    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " =====  Program to demonstrate the working of erase() method in a Map (Part 2), in CPP  ===== \n\n\n";

    map<int, int> m;
    m.insert(make_pair(3, 30));
    m.insert(make_pair(2, 20));
    m.insert(make_pair(5, 50));
    m.insert(make_pair(9, 90));
    m.insert(make_pair(1, 10));
}

Supprimer les éléments de la carte dont les clés sont inférieures à une certaine valeur

Dans cette étape, nous allons supprimer des éléments de la map dont les clés sont inférieures à une certaine valeur en utilisant la méthode erase(). Dans cet exemple, nous supprimons tous les éléments dont les clés sont inférieures à 3. erase(m.begin(), m.find(3)) supprime tous les éléments depuis le début de la map jusqu'à la position de l'itérateur pointant vers l'élément avec la clé 3.

#include <iostream>
#include <map>

using namespace std;

int main()
{
    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " =====  Program to demonstrate the working of erase() method in a Map (Part 2), in CPP  ===== \n\n\n";

    map<int, int> m;
    m.insert(make_pair(3, 30));
    m.insert(make_pair(2, 20));
    m.insert(make_pair(5, 50));
    m.insert(make_pair(9, 90));
    m.insert(make_pair(1, 10));

    cout << "Map elements before deletion:  " << endl;
    for (auto i : m)
    {
        cout << "( " << i.first << ", " << i.second << " ) ";
    }

    m.erase(m.begin(), m.find(3));

    cout << "\n\nMap elements after deletion:  " << endl;
    for (auto i : m)
    {
        cout << "( " << i.first << ", " << i.second << " ) ";
    }
    cout << "\n\n\n";
    return 0;
}

Compiler et exécuter le code

Pour exécuter le code C++ ci-dessus, nous devons le compiler et l'exécuter en utilisant les commandes suivantes dans le terminal :

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

Comprendre la sortie

Après avoir compilé et exécuté avec succès le code ci-dessus, la sortie sera la suivante :

Welcome to LabEx :-)


 =====  Program to demonstrate the working of erase() method in a Map (Part 2), in CPP  =====


Map elements before deletion:
( 1, 10 ) ( 2, 20 ) ( 3, 30 ) ( 5, 50 ) ( 9, 90 )

Map elements after deletion:
( 3, 30 ) ( 5, 50 ) ( 9, 90 )

Résumé

Dans ce laboratoire, nous avons appris sur la méthode erase() dans le conteneur Map du C++ STL pour supprimer une plage d'éléments dans une Map en langage de programmation C++. Nous avons également appris comment créer une Map et la remplir avec des paires clé-valeur en utilisant la méthode insert(). Enfin, nous avons vu comment supprimer des éléments d'une Map en utilisant erase().