Introducción
En este laboratorio, aprenderá sobre el funcionamiento de un Multiset y su implementación en el lenguaje de programación C++. Aprenderá específicamente cómo usar el método erase()
en un Set o Multiset para eliminar elementos.
💡 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á sobre el funcionamiento de un Multiset y su implementación en el lenguaje de programación C++. Aprenderá específicamente cómo usar el método erase()
en un Set o Multiset para eliminar elementos.
Utilice cualquier editor de texto de su elección para crear un nuevo archivo de código C++ llamado main.cpp
en el directorio del proyecto ~/project
.
cd ~/project
touch main.cpp
Ingrese el siguiente código en el archivo main.cpp
. Los comentarios explican el código.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//Función para imprimir los elementos del multiconjunto usando un iterador
void show(multiset<int> s)
{
//Declarando un iterador para iterar a través del multiconjunto
multiset<int>::iterator i;
for (i = s.begin(); i!= s.end(); i++)
{
cout << *i << " "; //Accediendo a los elementos del multiconjunto usando * ya que i almacena la dirección de cada elemento
}
cout << endl;
}
int main()
{
cout << "\n\nBienvenido al Laboratorio del Método erase() de STL Set\n\n\n";
cout << " ===== Programa para demostrar el funcionamiento de un Multiconjunto, en CPP ===== \n\n\n\n";
cout << "*** Los multiconjuntos son similares a los conjuntos, con la excepción de que múltiples elementos pueden tener los mismos valores. *** \n\n";
//Declaración del multiconjunto (Conjunto de enteros)
multiset<int> s;
//Llenando los elementos usando el método insert()
cout << "\n\nLlenando el Multiconjunto con enteros en orden aleatorio."; //El multiconjunto los almacena automáticamente en orden
s.insert(5);
s.insert(39);
s.insert(5);
s.insert(82);
s.insert(39);
s.insert(54);
cout << "\n\nEl número de elementos en el Multiconjunto es: " << s.size();
cout << "\n\nLos elementos del Multiconjunto son: ";
show(s);
multiset<int>::iterator it;
//Eliminando todos los elementos del conjunto que son menores que 54
s.erase(s.begin(), s.find(54));
cout << "\n\nDespués de eliminar todos los elementos que son menores que 54, el Multiconjunto se convierte en : ";
for (it = s.begin(); it!= s.end(); it++)
{
cout << " " << *it;
}
cout << "\n\n\n";
return 0;
}
En la terminal, compila el archivo main.cpp
usando el comando g++
, luego ejecuta el archivo compilado.
g++ main.cpp -o main && ./main
Deberías ver la siguiente salida:
Bienvenido al Laboratorio del Método erase() de STL Set
===== Programa para demostrar el funcionamiento de un Multiconjunto, en CPP =====
*** Los multiconjuntos son similares a los conjuntos, con la excepción de que múltiples elementos pueden tener los mismos valores. ***
Llenando el Multiconjunto con enteros en orden aleatorio.
El número de elementos en el Multiconjunto es: 6
Los elementos del Multiconjunto son: 5 5 39 39 54 82
Después de eliminar todos los elementos que son menores que 54, el Multiconjunto se convierte en : 54 82
Tómate el tiempo para revisar el código y asegúrate de entender cómo se utiliza el método erase()
para eliminar elementos del Multiconjunto.
//Eliminando todos los elementos del conjunto que son menores que 54
s.erase(s.begin(), s.find(54));
Este código utiliza el método erase()
para eliminar todos los elementos del Multiconjunto desde el principio hasta, pero sin incluir, el elemento con el valor 54. Por lo tanto, el Multiconjunto resultante contiene solo los valores 54 y 82.
En este laboratorio, aprendiste cómo usar el método erase()
en un Conjunto o Multiconjunto de C++ para eliminar elementos. También aprendiste cómo iterar a través de un multiconjunto usando un iterador y cómo imprimir los elementos usando el método show()
. Esto es útil al depurar o comprobar el contenido de estructuras de datos complejas como Conjuntos y Multiconjuntos.