Einführung
In diesem Lab lernst du, wie man eine ungeordnete Menge in der Programmiersprache C++ sortiert. Du wirst die grundlegenden Konzepte der ungeordneten Menge und deren Implementierung kennenlernen.
In diesem Lab lernst du, wie man eine ungeordnete Menge in der Programmiersprache C++ sortiert. Du wirst die grundlegenden Konzepte der ungeordneten Menge und deren Implementierung kennenlernen.
Um zu beginnen, öffne das Terminal und gib den folgenden Befehl ein, um in das Verzeichnis project zu navigieren:
cd project
Erstelle nun in dem Verzeichnis project eine neue Datei namens main.cpp. In dieser Datei wird der Code zum Sortieren der ungeordneten Menge enthalten sein.
touch main.cpp
Kopiere und füge folgenden Code in die Datei main.cpp ein.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
bool cmp(int x, int y)
{
if (x > y)
return true;
else
return false;
}
// Funktion, um die Elemente der ungeordneten Menge mit einem Iterator auszugeben
void show(unordered_set<int> s)
{
// Deklarieren eines Iterators, um durch die ungeordnete Menge zu iterieren
unordered_set<int>::iterator i;
for (i = s.begin(); i!= s.end(); i++)
{
cout << *i << " "; // Zugreifen auf die Elemente der ungeordneten Menge mit *, da i die Adresse jedes Elements speichert
}
cout << endl;
}
int main()
{
cout << "\n\nWillkommen bei LabEx :-)\n\n\n";
cout << " ===== Programm zur Demonstration des Sortierens einer ungeordneten Menge in C++ ===== \n\n\n\n";
cout << " *** Die ungeordnete Menge entfernt automatisch doppelte Elemente und behält eine zufällige Anordnung bei. *** \n\n";
cout << " *** Diese zufällige Anordnung hängt von der intern verwendeten Hash-Funktion ab. *** \n\n";
cout << " *** Die ungeordnete Menge kann sortiert werden, indem ihre Elemente in einen Vektor kopiert werden. *** \n\n";
// Deklaration der ungeordneten Menge (ungeordnete Menge von ganzen Zahlen)
unordered_set<int> s;
// Befüllen der Elemente mit der insert()-Methode.
cout << "\n\nFüllen der ungeordneten Menge mit ganzen Zahlen in zufälliger Reihenfolge."; // Im Gegensatz zur Menge wird dies nicht automatisch sortiert
s.insert(5);
s.insert(39);
s.insert(64);
s.insert(82);
s.insert(35);
s.insert(54);
cout << "\n\nDie Elemente der ungeordneten Menge vor dem Sortieren sind: ";
show(s);
// Deklarieren eines Vektors und Initialisieren mit den Elementen der ungeordneten Menge
vector<int> v(s.begin(), s.end());
// Sortieren der Vektor-Elemente in absteigender Reihenfolge mit einem benutzerdefinierten Vergleichsfunktion
sort(v.begin(), v.end(), cmp);
cout << "\n\nDie Elemente der ungeordneten Menge nach dem Sortieren in absteigender Reihenfolge mit einer benutzerdefinierten Sortierfunktion sind: \n";
// Deklarieren eines Iterators, um durch den Vektor zu iterieren
vector<int>::iterator it;
for (it = v.begin(); it!= v.end(); it++)
{
cout << *it << " "; // Zugreifen auf die Elemente des Vektors mit *, da i die Adresse jedes Elements speichert
}
cout << "\n\n\n";
return 0;
}
Um das Programm zu kompilieren und eine ausführbare Datei zu erstellen, führe folgenden Befehl im Terminal aus:
g++ main.cpp -o main
Dieser Befehl wird eine ausführbare Datei namens main erstellen.
Um den Code auszuführen, führe folgenden Befehl aus:
./main
Im Terminal sollten Sie die Ausgabe des Programms sehen.
Kopiere den Endcode in die Datei ~/project/main.cpp:
// ~/project/main.cpp
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
bool cmp(int x, int y)
{
if (x > y)
return true;
else
return false;
}
// Funktion, um die Elemente der ungeordneten Menge mit einem Iterator auszugeben
void show(unordered_set<int> s)
{
// Deklarieren eines Iterators, um durch die ungeordnete Menge zu iterieren
unordered_set<int>::iterator i;
for (i = s.begin(); i!= s.end(); i++)
{
cout << *i << " "; // Zugreifen auf die Elemente der ungeordneten Menge mit *, da i die Adresse jedes Elements speichert
}
cout << endl;
}
int main()
{
cout << "\n\nWillkommen bei LabEx :-)\n\n\n";
cout << " ===== Programm zur Demonstration des Sortierens einer ungeordneten Menge in C++ ===== \n\n\n\n";
cout << " *** Die ungeordnete Menge entfernt automatisch doppelte Elemente und behält eine zufällige Anordnung bei. *** \n\n";
cout << " *** Diese zufällige Anordnung hängt von der intern verwendeten Hash-Funktion ab. *** \n\n";
cout << " *** Die ungeordnete Menge kann sortiert werden, indem ihre Elemente in einen Vektor kopiert werden. *** \n\n";
// Deklaration der ungeordneten Menge (ungeordnete Menge von ganzen Zahlen)
unordered_set<int> s;
// Befüllen der Elemente mit der insert()-Methode.
cout << "\n\nFüllen der ungeordneten Menge mit ganzen Zahlen in zufälliger Reihenfolge."; // Im Gegensatz zur Menge wird dies nicht automatisch sortiert
s.insert(5);
s.insert(39);
s.insert(64);
s.insert(82);
s.insert(35);
s.insert(54);
cout << "\n\nDie Elemente der ungeordneten Menge vor dem Sortieren sind: ";
show(s);
// Deklarieren eines Vektors und Initialisieren mit den Elementen der ungeordneten Menge
vector<int> v(s.begin(), s.end());
// Sortieren der Vektor-Elemente in absteigender Reihenfolge mit einem benutzerdefinierten Vergleichsfunktion
sort(v.begin(), v.end(), cmp);
cout << "\n\nDie Elemente der ungeordneten Menge nach dem Sortieren in absteigender Reihenfolge mit einer benutzerdefinierten Sortierfunktion sind: \n";
// Deklarieren eines Iterators, um durch den Vektor zu iterieren
vector<int>::iterator it;
for (it = v.begin(); it!= v.end(); it++)
{
cout << *it << " "; // Zugreifen auf die Elemente des Vektors mit *, da i die Adresse jedes Elements speichert
}
cout << "\n\n\n";
return 0;
}
In diesem Labor haben Sie gelernt, wie man eine ungeordnete Menge in der C++-Programmiersprache sortiert. Sie haben die grundlegenden Konzepte der ungeordneten Menge und deren Implementierung mit Hilfe von Vektoren und der STL sort-Methode kennengelernt. Sie haben auch gelernt, wie man eine ungeordnete Menge deklariert und mit Elementen füllt.