Introducción
En este laboratorio, aprenderá a usar el método erase()
para eliminar elementos de un mapa en C++ STL. El mapa es un contenedor que almacena datos en pares clave-valor.
💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí
En este laboratorio, aprenderá a usar el método erase()
para eliminar elementos de un mapa en C++ STL. El mapa es un contenedor que almacena datos en pares clave-valor.
Cree una instancia de mapa en el archivo main.cpp incluyendo estos archivos de encabezado al principio del archivo:
#include <iostream>
#include <bits/stdc++.h>
Declare un mapa con claves y valores enteros como se muestra a continuación:
map<int, int> m;
Inserta datos aleatorios en el mapa utilizando el método insert()
. El método make_pair()
se puede utilizar para asignar pares clave-valor al 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));
Utilice el método erase(x)
para eliminar un elemento del mapa con la clave con un valor de x
. Si el valor no existe, devuelve 0, de lo contrario 1.
int j = m.erase(5);
if(j == 1) {
cout << "\nEl elemento del mapa con clave 5 se ha eliminado.";
} else {
cout << "\nEl elemento del mapa con clave 5 no existe.";
}
También puede eliminar un elemento con un valor de clave que no existe en el mapa sin que el programa se detenga. Por ejemplo:
int k = m.erase(6);
if(k!= 0){
cout << "\n\nEl elemento del mapa con clave 6 se ha eliminado\n\n";
} else {
cout << "\n\nEl elemento del mapa con clave 6 no existe.";
}
Para ejecutar el código, vaya al directorio que contiene el archivo main.cpp en la terminal y escriba los siguientes comandos para compilar y ejecutar:
$ g++ main.cpp -o main
$./main
A continuación se presenta el código completo para su referencia:
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
cout << "\n\nBienvenido a LabEx :-)\n\n\n";
cout << "===== Programa para demostrar el funcionamiento del método erase() en un Map (Parte 1), en CPP ===== \n\n\n";
cout << "*** El método erase(x) elimina el elemento del mapa con clave x y devuelve 1 si se encuentra, de lo contrario devuelve 0. *** \n\n";
// Declaración del mapa (Mapa con clave y valor ambos enteros)
map<int, int> m;
// Llenando los elementos utilizando el método insert()
cout << "\n\nLlenando el Mapa con pares clave-valor de enteros en orden aleatorio."; //El Mapa los almacena automáticamente en orden ascendente de claves
//make_pair() se utiliza para insertar un par clave-valor en el 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));
cout << "\n\nEl número de elementos en el Mapa es: " << m.size();
cout << "\n\nLos elementos del Mapa m son: ";
map<int, int>::iterator i;
int j = 0;
for (i = m.begin(); i!= m.end(); i++)
{
cout << "( " << i->first << ", " << i->second << " ) ";
}
//Buscando el elemento del mapa con clave 5
j = m.erase(5);
if (j == 1)
{
cout << "\n\nEl elemento del mapa con clave 5 se ha eliminado.";
}
else
{
cout << "\n\nEl elemento del mapa con clave 5 no existe.";
}
cout << "\n\nEl número de elementos en el Mapa pasa a ser: " << m.size();
cout << "\n\nLos elementos del Mapa m después de la operación erase son: ";
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\nEl elemento del mapa con clave 6 se ha eliminado\n\n";
}
else
{
cout << "\n\nEl elemento del mapa con clave 6 no existe.";
}
cout << "\n\n\n";
return 0;
}
En este laboratorio, has comenzado creando un mapa y luego lo has llenado con datos. Luego, has aprendido cómo utilizar el método erase()
para eliminar elementos del mapa utilizando sus claves. Esperamos que los ejemplos anteriores te ayuden a entender cómo eliminar elementos de un mapa en la STL de C++.