C++ Verwendung von STL ungeordneter Menge

C++Beginner
Jetzt üben

Einführung

In diesem Lab werden Sie lernen, wie Sie std::unordered_set in C++ implementieren und verwenden. Ein Set wird verwendet, um einzigartige Werte einer Liste zu speichern und automatisch zu sortieren. Ein ungeordnetes Set ist ähnlich wie ein Set, mit dem Unterschied, dass es die Elemente nicht sortiert und sie in zufälliger Reihenfolge speichert. Es entfernt auch automatisch alle doppelten Elemente.

Projektverzeichnis einrichten

Erstellen Sie zunächst einen Projektordner, um Ihren Code zu speichern. Öffnen Sie das Terminal und navigieren Sie mit dem Befehl cd in den Ordner.

cd ~/project
touch main.cpp

Erstellen Sie eine neue Datei namens main.cpp mit einem beliebigen Texteditor Ihrer Wahl.

Ein Programm erstellen, um das Funktionieren von ungeordneten Mengen zu demonstrieren

In diesem Schritt schreiben Sie ein Programm, um das Funktionieren von std::unordered_set in C++ zu demonstrieren. Dieses Programm wird eine leere std::unordered_set deklarieren, sie mit einigen Elementen füllen, ein Element löschen und dann die Elemente der Menge ausgeben.

Beginnen Sie mit dem Einfügen der erforderlichen Bibliotheken und erstellen Sie eine show-Funktion, um die Elemente der ungeordneten Menge mit einem Iterator auszugeben.

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

Die ungeordnete Menge mit ganzen Zahlen füllen

In diesem Schritt füllen Sie die std::unordered_set mit sechs ganzen Zahlen mithilfe der insert-Methode.

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 << "Die Elemente der ungeordneten Menge sind: \n";
    show(s);

    return 0;
}

Ein Element aus der ungeordneten Menge löschen

In diesem Schritt löschen Sie ein Element aus der ungeordneten Menge mithilfe der erase-Methode. Geben Sie dann die aktualisierte Menge aus.

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 << "Die Elemente der ungeordneten Menge sind: \n";
    show(s);

    s.erase(39);
    std::cout << "\nNachdem das Element 39 aus der ungeordneten Menge mit der erase()-Methode gelöscht wurde, sieht es so aus: \n";
    show(s);

    return 0;
}

Den Code kompilieren und ausführen

Um den Code zu kompilieren und auszuführen, verwenden Sie den folgenden Befehl im Terminal:

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

Die Ausgabe wird wie folgt sein:

Die Elemente der ungeordneten Menge sind:
54 35 5 64 39 82
Nachdem das Element 39 aus der ungeordneten Menge mit der erase()-Methode gelöscht wurde, sieht es so aus:
54 35 5 64 82

Vollständiger main.cpp -Code

Hier ist der vollständige Code für 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 << "Die Elemente der ungeordneten Menge sind: \n";
    show(s);

    s.erase(39);
    std::cout << "\nNachdem das Element 39 aus der ungeordneten Menge mit der erase()-Methode gelöscht wurde, sieht es so aus: \n";
    show(s);

    return 0;
}

Zusammenfassung

In diesem Lab haben Sie gelernt, wie man std::unordered_set in C++ implementiert und verwendet. std::unordered_set wird verwendet, um einzigartige Werte zu speichern und entfernt automatisch alle Duplikate. Im Gegensatz zu std::set sortiert es die Elemente nicht und speichert sie in einer zufälligen Reihenfolge.