Heim > Backend-Entwicklung > C++ > Hauptteil

Wie sortiere ich benutzerdefinierte Typen in C mithilfe der Standardbibliothek?

Patricia Arquette
Freigeben: 2024-11-18 08:34:02
Original
926 Leute haben es durchsucht

How Do I Sort User-Defined Types in C   Using the Standard Library?

Sortieren benutzerdefinierter Typen mit der Standardbibliothek

Beim Sortieren einer Sammlung benutzerdefinierter Typen kann es erforderlich sein, diese zu ordnen basierend auf bestimmten Mitgliedsvariablen. Um dies mit der Sortierfunktion der Standardbibliothek zu erreichen, muss unbedingt Folgendes berücksichtigt werden:

Implementieren des Vergleichsoperators:

Die Standardsortierfunktion erfordert, dass die Elemente sortiert werden Implementieren Sie den Vergleichsoperator <. Im Kontext eines benutzerdefinierten Typs definiert dieser Operator die Logik zum Ordnen von Elementen. Zum Beispiel:

struct MyType {
    int a;
    int b;
    bool operator<(const MyType& other) const {
        return a < other.a; // Compares 'a' of this object with 'a' of other.
    }
};
Nach dem Login kopieren

Durch die Implementierung des < Operator, der benutzerdefinierte Typ ermöglicht es der Sortierfunktion, ihre Elemente basierend auf der Mitgliedsvariablen „a“ zu ordnen.

Vergleichsfunktionen verwenden:

Ein alternativer Ansatz ist Vergleichsfunktionen oder Funktoren zum Definieren der Sortierkriterien zu verwenden. Dies ist nützlich, wenn die Implementierung von < nicht möglich oder praktisch ist. Operator. Eine Vergleichsfunktion verwendet zwei Elemente als Eingabe und gibt einen booleschen Wert zurück, der die Ordnungsbeziehung angibt.

bool type_is_less(const MyType& t1, const MyType& t2) {
    return t1.b < t2.b; // Compares 'b' of 't1' with 'b' of 't2'.
}

...
std::sort(container.begin(), container.end(), type_is_less);
Nach dem Login kopieren

Vorteile von Vergleichsfunktionen:

  • Flexibilität bei der Definition Benutzerdefinierte Sortierkriterien.
  • Vermeidet die Notwendigkeit, den benutzerdefinierten Typ zu ändern selbst.
  • Ermöglicht mehrere Sortierkriterien durch die Verwendung verschiedener Vergleichsfunktionen.

Fazit:

Die Sortierfunktion der Standardbibliothek bietet Flexibilität beim Sortieren benutzerdefinierte Typen. Durch die Implementierung des Vergleichsoperators oder die Verwendung von Vergleichsfunktionen wird es möglich, Elemente basierend auf bestimmten Mitgliedsvariablen zu ordnen und so eine effiziente Sortierung komplexer Datenstrukturen zu ermöglichen.

Das obige ist der detaillierte Inhalt vonWie sortiere ich benutzerdefinierte Typen in C mithilfe der Standardbibliothek?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage