Introdução
Neste laboratório, você aprenderá como usar o método erase() para remover elementos em um mapa (map) na STL C++. O mapa é um contêiner que armazena dados em pares chave-valor (key-value pair).
Neste laboratório, você aprenderá como usar o método erase() para remover elementos em um mapa (map) na STL C++. O mapa é um contêiner que armazena dados em pares chave-valor (key-value pair).
Crie uma instância de mapa no arquivo main.cpp, incluindo estes arquivos de cabeçalho (header files) no topo do arquivo:
#include <iostream>
#include <bits/stdc++.h>
Declare um mapa com chaves e valores inteiros da seguinte forma:
map<int, int> m;
Insira dados aleatórios no mapa usando o método insert(). O método make_pair() pode ser usado para atribuir pares chave-valor (key-value pairs) ao mapa.
m.insert(make_pair(3, 9));
m.insert(make_pair(2, 4));
m.insert(make_pair(5, 25));
m.insert(make_pair(9, 81));
m.insert(make_pair(1, 1));
Use o método erase(x) para remover um elemento do mapa com a chave de valor x. Se o valor não existir, ele retorna 0, caso contrário, retorna 1.
int j = m.erase(5);
if(j == 1) {
cout << "\nO elemento do Mapa com a chave 5 foi deletado.";
} else {
cout << "\nO elemento do Mapa com a chave 5 não existe.";
}
Você também pode remover um elemento com o valor da chave que não existe no mapa sem que o programa trave. Por exemplo:
int k = m.erase(6);
if(k != 0){
cout << "\n\nO elemento do Mapa com a chave 6 foi deletado\n\n";
} else {
cout << "\n\nO elemento do Mapa com a chave 6 não existe.";
}
Para executar o código, navegue até o diretório que contém o arquivo main.cpp no terminal e insira os seguintes comandos para compilar e executar:
g++ main.cpp -o main
./main
Abaixo está o código completo para sua referência:
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
cout << "\n\nBem-vindo ao LabEx :-)\n\n\n";
cout << "===== Programa para demonstrar o funcionamento do método erase() em um Map (Parte 1), em CPP ===== \n\n\n";
cout << "*** O método erase(x) deleta o elemento do mapa com a chave x e retorna 1 se encontrado, caso contrário, retorna 0. *** \n\n";
// Declaração do Map (Map com chave e valor como inteiros)
map<int, int> m;
// Preenchendo os elementos usando o método insert().
cout << "\n\nPreenchendo o Map com pares chave-valor de inteiros em ordem aleatória."; //O Map os armazena automaticamente em ordem crescente de chaves
//make_pair() é usado para inserir um par chave-valor no map
m.insert(make_pair(3, 9));
m.insert(make_pair(2, 4));
m.insert(make_pair(5, 25));
m.insert(make_pair(9, 81));
m.insert(make_pair(1, 1));
cout << "\n\nO número de elementos no Map é: " << m.size();
cout << "\n\nOs elementos do Map m são: ";
map<int, int>::iterator i;
int j = 0;
for (i = m.begin(); i != m.end(); i++)
{
cout << "( " << i->first << ", " << i->second << " ) ";
}
//Encontrando o elemento do map com a chave 5
j = m.erase(5);
if (j == 1)
{
cout << "\n\nO elemento do Map com a chave 5 foi deletado.";
}
else
{
cout << "\n\nO elemento do Map com a chave 5 não existe.";
}
cout << "\n\nO número de elementos no Map se torna: " << m.size();
cout << "\n\nOs elementos do Map m após a operação erase são: ";
j = 0;
for (i = m.begin(); i != m.end(); i++)
{
cout << "( " << i->first << ", " << i->second << " ) ";
}
j = m.erase(6);
if (i != m.end())
{
cout << "\n\nO elemento do Map com a chave 6 foi deletado\n\n";
}
else
{
cout << "\n\nO elemento do Map com a chave 6 não existe.";
}
cout << "\n\n\n";
return 0;
}
Neste laboratório, você começou criando um mapa e, em seguida, preenchendo-o com dados. Depois, você aprendeu a usar o método erase() para remover elementos do mapa usando suas chaves. Esperamos que os exemplos acima ajudem você a entender como remover elementos de um mapa na C++ STL.