C++ Usando el Conjunto No Ordenado de la STL

C++C++Beginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/StandardLibraryGroup(["Standard Library"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp/BasicsGroup -.-> cpp/strings("Strings") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/StandardLibraryGroup -.-> cpp/standard_containers("Standard Containers") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/strings -.-> lab-96234{{"C++ Usando el Conjunto No Ordenado de la STL"}} cpp/for_loop -.-> lab-96234{{"C++ Usando el Conjunto No Ordenado de la STL"}} cpp/output -.-> lab-96234{{"C++ Usando el Conjunto No Ordenado de la STL"}} cpp/files -.-> lab-96234{{"C++ Usando el Conjunto No Ordenado de la STL"}} cpp/standard_containers -.-> lab-96234{{"C++ Usando el Conjunto No Ordenado de la STL"}} cpp/code_formatting -.-> lab-96234{{"C++ Usando el Conjunto No Ordenado de la STL"}} end

Configurar 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.

Crear 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 << " ";
    }
}

Llenar 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;
}

Eliminar 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;
}

Compilar y ejecutar 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.