Método Erase do Map da STL C++

C++Beginner
Pratique Agora

Introdução

Neste laboratório, vamos aprender sobre o método erase() no Container Map da STL C++ para deletar um intervalo de elementos em um Map na linguagem de programação C++.

Criar e preencher o Map com pares chave-valor de inteiros

Crie um novo arquivo C++ no diretório ~/project chamado main.cpp usando o comando touch ~/project/main.cpp e abra-o usando seu editor de texto preferido.

Nesta etapa, criaremos um map e o preencheremos com pares chave-valor de inteiros usando o método insert(). A função make_pair() é usada para inserir um par chave-valor no map. As chaves são automaticamente ordenadas em ordem crescente.

#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));
}

Deletar elementos do Map com chaves menores que um determinado valor

Nesta etapa, deletaremos elementos no map com chaves menores que um determinado valor usando o método erase(). Neste exemplo, estamos deletando todos os elementos com chaves menores que 3. erase(m.begin(), m.find(3)) remove todos os elementos do início do map, até a posição do iterador que aponta para o elemento com a chave 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;
}

Compilar e Executar o código

Para executar o código C++ acima, precisamos compilá-lo e executá-lo usando os seguintes comandos no terminal:

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

Entender a Saída

Após compilar e executar o código acima com sucesso, a saída será:

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 )

Resumo

Neste laboratório, aprendemos sobre o método erase() no Container Map da STL C++ para deletar um intervalo de elementos em um Map na linguagem de programação C++. Também aprendemos como criar um Map e preenchê-lo com pares chave-valor usando o método insert(). Finalmente, vimos como deletar elementos de um Map usando erase().