C++ Usando STL Unordered Set

C++Beginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como implementar e usar std::unordered_set em C++. Um conjunto (set) é usado para armazenar valores únicos de uma lista e ordená-los automaticamente. Um conjunto não ordenado (unordered set) é semelhante a um conjunto, exceto que não ordena os elementos e os armazena em uma ordem aleatória. Ele também remove automaticamente quaisquer elementos duplicados.

Configurar o diretório do projeto

Primeiramente, crie uma pasta de projeto para conter seu código. Abra o terminal e navegue até a pasta usando o comando cd.

cd ~/project
touch main.cpp

Crie um novo arquivo chamado main.cpp usando qualquer editor de texto de sua preferência.

Criar um programa para demonstrar o funcionamento de Unordered Sets

Nesta etapa, escreva um programa para demonstrar o funcionamento de std::unordered_set em C++. Este programa declarará um std::unordered_set vazio, preencherá com alguns elementos, excluirá um elemento e, em seguida, imprimirá os elementos do conjunto.

Comece incluindo as bibliotecas necessárias e criando uma função show para imprimir os elementos do conjunto não ordenado usando um 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 << " ";
    }
}

Preencher o unordered set com inteiros

Nesta etapa, preencha o std::unordered_set com seis inteiros usando o 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 << "The elements of the unordered set are: \n";
    show(s);

    return 0;
}

Remover um elemento do unordered set

Nesta etapa, exclua um elemento do conjunto não ordenado usando o método erase. Em seguida, imprima o conjunto atualizado.

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 << "The elements of the unordered set are: \n";
    show(s);

    s.erase(39);
    std::cout << "\nAfter deleting the element 39 from the unordered set using the erase() method, it becomes: \n";
    show(s);

    return 0;
}

Compilar e executar o código

Para compilar e executar o código, use o seguinte comando no terminal:

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

A saída será:

The elements of the unordered set are:
54 35 5 64 39 82
After deleting the element 39 from the unordered set using the erase() method, it becomes:
54 35 5 64 82

Código completo de main.cpp

Aqui está o código completo para 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 << "The elements of the unordered set are: \n";
    show(s);

    s.erase(39);
    std::cout << "\nAfter deleting the element 39 from the unordered set using the erase() method, it becomes: \n";
    show(s);

    return 0;
}

Resumo

Neste laboratório, você aprendeu como implementar e usar std::unordered_set em C++. std::unordered_set é usado para armazenar valores únicos e remove quaisquer duplicatas automaticamente. Diferente de std::set, ele não ordena os elementos e os armazena em uma ordem aleatória.