C++ Usando el Conjunto No Ordenado de la STL

C++Beginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a implementar y usar std::unordered_set en C++. Un conjunto se utiliza para almacenar valores únicos de una lista y ordenarlos automáticamente. Un conjunto no ordenado es similar a un conjunto, excepto que no ordena los elementos y los almacena en un orden aleatorio. También elimina automáticamente cualquier elemento duplicado.

Configura el directorio del proyecto

Primero, cree una carpeta de proyecto para contener su código. Abra la terminal y navegue hasta la carpeta usando el comando cd.

cd ~/proyecto
touch main.cpp

Cree un nuevo archivo llamado main.cpp usando cualquier editor de texto de su elección.

Crea un programa para demostrar el funcionamiento de los conjuntos no ordenados

En este paso, escriba un programa para demostrar el funcionamiento de std::unordered_set en C++. Este programa declarará un std::unordered_set vacío, lo llenará con algunos elementos, eliminará un elemento y luego imprimirá los elementos del conjunto.

Comience incluyendo las bibliotecas necesarias y creando una función show para imprimir los elementos del conjunto no ordenado usando un iterador.

#include <iostream>
#include <unordered_set>

void show(std::unordered_set<int> s)
{
    std::unordered_set<int>::iterator it;

    for (it = s.begin(); it!= s.end(); ++it)
    {
        std::cout << *it << " ";
    }
}

Llena el conjunto no ordenado con enteros

En este paso, llene el std::unordered_set con seis enteros usando el método insert.

int main()
{
    std::unordered_set<int> s;
    s.insert(5);
    s.insert(39);
    s.insert(64);
    s.insert(82);
    s.insert(35);
    s.insert(54);

    std::cout << "Los elementos del conjunto no ordenado son: \n";
    show(s);

    return 0;
}

Elimina un elemento del conjunto no ordenado

En este paso, elimine un elemento del conjunto no ordenado usando el método erase. Luego, imprima el conjunto actualizado.

int main()
{
    std::unordered_set<int> s;
    s.insert(5);
    s.insert(39);
    s.insert(64);
    s.insert(82);
    s.insert(35);
    s.insert(54);

    std::cout << "Los elementos del conjunto no ordenado son: \n";
    show(s);

    s.erase(39);
    std::cout << "\nDespués de eliminar el elemento 39 del conjunto no ordenado usando el método erase(), se convierte en: \n";
    show(s);

    return 0;
}

Compila y ejecuta el código

Para compilar y ejecutar el código, use el siguiente comando en la terminal:

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

La salida será:

Los elementos del conjunto no ordenado son:
54 35 5 64 39 82
Después de eliminar el elemento 39 del conjunto no ordenado usando el método erase(), se convierte en:
54 35 5 64 82

Código completo de main.cpp

Aquí está el código completo de main.cpp:

#include <iostream>
#include <unordered_set>

void show(std::unordered_set<int> s)
{
    std::unordered_set<int>::iterator it;

    for (it = s.begin(); it!= s.end(); ++it)
    {
        std::cout << *it << " ";
    }
}

int main()
{
    std::unordered_set<int> s;
    s.insert(5);
    s.insert(39);
    s.insert(64);
    s.insert(82);
    s.insert(35);
    s.insert(54);

    std::cout << "Los elementos del conjunto no ordenado son: \n";
    show(s);

    s.erase(39);
    std::cout << "\nDespués de eliminar el elemento 39 del conjunto no ordenado usando el método erase(), se convierte en: \n";
    show(s);

    return 0;
}

Resumen

En este laboratorio, aprendiste cómo implementar y usar std::unordered_set en C++. std::unordered_set se utiliza para almacenar valores únicos y elimina automáticamente cualquier duplicado. A diferencia de std::set, no ordena los elementos y los almacena en un orden aleatorio.