Einführung
In diesem Lab lernst du, wie du Strings nach ihrer Länge sortieren kannst, indem du eine benutzerdefinierte Sortierfunktion in der Programmiersprache C++ verwendest. Du wirst auch lernen, wie du benutzerdefinierte Sortierlogik implementierst und die Elemente einer ungeordneten Menge in einer bestimmten Reihenfolge sortierst.
Erstelle eine neue Datei
Der erste Schritt besteht darin, eine neue Datei zu erstellen. Öffne ein Terminal und navigiere zum Verzeichnis ~/project. Erstelle eine neue Datei namens main.cpp mit deinem bevorzugten Texteditor.
cd ~/project
touch main.cpp
Schreibe den Code
Füge folgenden Code zur main.cpp-Datei hinzu. Dieser Code wird eine Menge von Strings nach ihrer Länge sortieren.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//Gibt true zurück, wenn die erste Zeichenkette eine längere Länge als die zweite hat
bool cmp(string x, string y)
{
int n = x.length();
int m = y.length();
if (n > m)
return true;
else
return false;
}
//Funktion, um die Elemente der ungeordneten Menge mit einem Iterator auszugeben
void show(unordered_set<string> s)
{
// Deklarieren eines Iterators, um durch die ungeordnete Menge zu iterieren
unordered_set<string>::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, um das Sortieren von Zeichenketten basierend auf der Länge in CPP zu demonstrieren ===== \n\n\n\n";
cout << " *** Die ungeordnete Menge entfernt automatisch doppelte Elemente und behält eine zufällige Reihenfolge bei. *** \n\n";
cout << " *** Diese zufällige Reihenfolge 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 Zeichenketten)
unordered_set<string> s;
// Befüllen der Elemente mit der insert()-Methode.
cout << "\n\nBefülle die ungeordnete Menge mit Zeichenketten in zufälliger Reihenfolge."; // Im Gegensatz zur Menge wird dies nicht automatisch sortiert
s.insert("Study");
s.insert("Tonight");
s.insert("Aditya");
s.insert("Abhishek");
s.insert("C++");
s.insert("Hi");
cout << "\n\nDie Elemente der ungeordneten Menge vor dem Sortieren sind:\n ";
show(s);
// Deklarieren eines Vektors und Initialisieren mit den Elementen der ungeordneten Menge
vector<string> v(s.begin(), s.end());
// Sortieren der Vektor-Elemente in absteigender Reihenfolge ihrer Länge mit einem benutzerdefinierten Vergleicher
sort(v.begin(), v.end(), cmp);
cout << "\n\nDie Elemente der ungeordneten Menge nach dem Sortieren in absteigender Reihenfolge ihrer Länge mit einem benutzerdefinierten Vergleicher sind: \n";
// Deklarieren eines Iterators, um durch den Vektor zu iterieren
vector<string>::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;
}
Kompiliere und führe den Code aus
Um diesen Code zu kompilieren, navigiere im Terminal zum Verzeichnis ~/project und führe folgenden Befehl aus:
g++ main.cpp -o main && ./main
Die Ausgabe wird Ihnen die sortierte Liste von Strings zeigen.
Zusammenfassung
In diesem Lab hast du gelernt, wie du eine ungeordnete Menge von Strings sortierst, indem du eine benutzerdefinierte Sortierfunktion in der Programmiersprache C++ schreibst. Du hast auch gelernt, wie du benutzerdefinierte Sortierlogik implementierst und die Elemente einer ungeordneten Menge in einer bestimmten Reihenfolge sortierst. Dieses Wissen kann auf eine Vielzahl von Programmierprojekten angewendet werden und hilft dir, effizienten und leicht lesbaren Code zu schreiben.



