Strings nach Länge in C++ sortieren

C++C++Beginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/StandardLibraryGroup(["Standard Library"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp/BasicsGroup -.-> cpp/strings("Strings") cpp/FunctionsGroup -.-> cpp/function_parameters("Function Parameters") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/StandardLibraryGroup -.-> cpp/standard_containers("Standard Containers") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/strings -.-> lab-96224{{"Strings nach Länge in C++ sortieren"}} cpp/function_parameters -.-> lab-96224{{"Strings nach Länge in C++ sortieren"}} cpp/output -.-> lab-96224{{"Strings nach Länge in C++ sortieren"}} cpp/files -.-> lab-96224{{"Strings nach Länge in C++ sortieren"}} cpp/standard_containers -.-> lab-96224{{"Strings nach Länge in C++ sortieren"}} cpp/code_formatting -.-> lab-96224{{"Strings nach Länge in C++ sortieren"}} end

Erstellen einer neuen 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;
}

Kompilieren und Ausführen des Codes

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.