Введение
В этом практическом занятии вы научитесь реализовывать и использовать std::unordered_set в C++. Множество используется для хранения уникальных значений списка и автоматически сортирует их. Неупорядоченное множество похоже на множество, за исключением того, что оно не сортирует элементы и хранит их в случайном порядке. Также оно автоматически удаляет любые дублирующиеся элементы.
Настройте директорию проекта
Сначала создайте папку проекта для хранения вашего кода. Откройте терминал и перейдите в папку с помощью команды cd.
cd ~/project
touch main.cpp
Создайте новый файл с именем main.cpp с использованием любого текстового редактора по вашему выбору.
Создайте программу для демонстрации работы неупорядоченных множеств
В этом шаге напишите программу для демонстрации работы std::unordered_set в C++. Эта программа объявит пустое std::unordered_set, заполнит его некоторыми элементами, удалит элемент и затем выведет элементы множества.
Начните с включения необходимых библиотек и создания функции show, которая будет выводить элементы неупорядоченного множества с использованием итератора.
#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 << " ";
}
}
Заполните неупорядоченное множество целыми числами
В этом шаге заполните std::unordered_set шестью целыми числами с использованием метода 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;
}
Удалите элемент из неупорядоченного множества
В этом шаге удалите элемент из неупорядоченного множества с использованием метода erase. Затем выведите обновленное множество.
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 << "\nПосле удаления элемента 39 из неупорядоченного множества с использованием метода erase(), оно становится: \n";
show(s);
return 0;
}
Компилируйте и запустите код
Для компиляции и запуска кода используйте следующую команду в терминале:
g++ main.cpp -o main && ./main
Вывод будет таким:
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
Полный код main.cpp
Вот полный код для 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 << "\nПосле удаления элемента 39 из неупорядоченного множества с использованием метода erase(), оно становится: \n";
show(s);
return 0;
}
Резюме
В этом практическом занятии вы узнали, как реализовать и использовать std::unordered_set в C++. std::unordered_set используется для хранения уникальных значений и автоматически удаляет любые дубликаты. В отличие от std::set, он не сортирует элементы и хранит их в случайном порядке.



