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.



