Использование неупорядоченного множества STL в C++

C++Beginner
Практиковаться сейчас

Введение

В этом практическом занятии вы научитесь реализовывать и использовать 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, он не сортирует элементы и хранит их в случайном порядке.