C ++ Programmierung: Operationen auf einer vollstaendigen Liste

Some C ++ Programme können mit Daten umgehen, wie es kommt und verzichten damit. Die meisten Programme müssen jedoch gespeichert werden Daten für eine spätere Verarbeitung. Eine Struktur, die verwendet wird, um Daten zu speichern, ist allgemein bekannt als Container oder ein Sammlung. (Viele Leute verwenden die Begriffe synonym.)

Beginnend Programme der Regel verlassen sich stark auf dem Array für die Datenspeicherung. Das Array-Container hat ein paar schöne Eigenschaften: Es speichert und ruft die Dinge schnell. Zusätzlich kann das Array deklariert werden, um jede Art von Objekt in einer typsichere Weise zu halten. Wogen gegen diese Vorteile sind jedoch zwei große Nachteile.

Zunächst müssen Sie die Größe des Arrays zu der Zeit kennen sie erstellt wird. Diese Anforderung ist im allgemeinen nicht erreichbar, obwohl man manchmal wissen, dass die Anzahl der Elemente kann nicht überschreiten einige # 147-großen Wert # 148.

Viren jedoch ausnutzen häufig diese Art von # 147-es kann nicht größer sein als dieses # 148- Annahme, die sich als unzutreffend herausstellt. Es gibt keinen wirklichen Weg zu # 147-wachsen # 148- ein Array mit Ausnahme eines neuen Arrays zu deklarieren und den Inhalt des alten Arrays in die neue, größere Version kopieren.

Zweitens beinhaltet Elemente innerhalb des Arrays Kopieren Einfügen oder Elemente überall innerhalb des Arrays zu entfernen. Dies ist teuer sowohl in Bezug auf Speicher und Rechenzeit. die Elemente innerhalb eines Arrays Sortierung ist noch teurer.

C ++ kommt jetzt mit der Standard Template Library, oder STL, die viele verschiedene Arten von Behältern, die jeweils mit einem eigenen Satz von Vorteilen (und Nachteile) umfasst.

Die C ++ Standard Template Library ist eine sehr große Bibliothek von manchmal komplexen Containern. Diese Sitzung wird als nur ein Überblick über die Leistung der STL.

Die STL-Bibliothek definiert bestimmte Operationen auf die gesamte Liste. Beispielsweise die Liste :: sort () Verfahren sagt # 147-Ich werde sortieren die Liste für Sie, wenn Sie mich nur sagen, welche erste Objekte gehen. # 148- Sie tun dies durch die Definition operatorlt; (const T, const T). Dieser Operator wird bereits für die Eigenarten und viele Bibliotheksklassen definiert, wie String. Zum Beispiel müssen Sie nichts tun, um eine Liste von ganzen Zahlen zu sortieren:

Liste Partituren-scores.push_back (10) -scores.push_back (1) -scores.push_back (5) -scores.sort () -

Der Programmierer muss ihre eigenen Vergleichsoperator für ihre eigenen Klassen definieren, wenn sie C ++ will, sie zu sortieren. Zum Beispiel, nach dem Vergleich Sorten Schüler Objekte durch ihre Studenten-ID:

bool operatorlt; (const: Student s1, const Studenten s2) {return s1.ssID lt; s2.ssID-}

Menü