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().



