Verkettete Listen sind nützlich für dynamische Listen von Objekten, die sich häufig ändern wird . Eine verkettete Liste können Sie die Liste Insertionen und Deletionen in konstanter Zeit ausführen , während dynamische Arrays diese Aufgaben in linearer Zeit . Dieser Vorteil für das Einfügen und Löschen kommt zu einem Preis von einen langsameren Zugriffszeit , da die Liste muss durchlaufen jedes Mal ein anderer Index gewünscht wird. Dieser Mangel an Random Access bedeutet , dass man nicht mit einem Standard- Sortieralgorithmus wie " qsort ", die eine Umsetzung der schnellen Sortieralgorithmus in der C + + -Standard-Bibliothek zu finden ist . Zum Glück , vorausgesetzt, die Designer von std :: list spezifische Sortier -Tools, die gut dokumentiert und einfach zu bedienen sind. Anleitung
1
gehören die Standard- Bibliothek Listenkopf in den Code -Datei. Dies kann bereits enthalten, wenn Sie die Liste Objekt in Ihrem Quellcode definiert werden.
# Include
2 Ändern Sie die Umsetzung der Struktur werden Sie zu ordnen überladen Sie die "<" -Operator. Dieser Operator wird von std :: list verwendet werden, wenn die Liste sortieren . Stellen Sie sicher, dass Sie die richtige Datenfeld zu sortieren auf wählen , da sonst die Sortierung Ergebnisse nicht wie erwartet .
//Dies ist ein Beispiel -Struktur ist . Ändern Sie Ihre bestehende Struktur zu dem Operator <
struct MyStruct
{ int
m_dataToSortOn nutzen ;
bool operator < (const & rhs MyStruct )
{
Rückkehr this.m_dataToSortOn < rhs.m_dataToSortOn ;
}
};
3 < p > Rufen Sie die " Art "-Methode auf Ihrer Liste Objekt . Dies wird die Liste sortieren von Objekten auf den Ausgang der " < "-Operator basiert
//Sortieren Sie die Liste von Daten
myList.sort (); .