Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

C++

List

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Der Trainer erklärt Ihnen die Unterschiede zwischen Listen und Vektoren. Erfahren Sie, wo deren Vor- und Nachteile liegen und wie Sie diese richtig einsetzen.

Transkript

Ich möchte Ihnen zeigen, wie Listen funktionieren aus der STL-Bibliothek. Hier mit '#include <list' holen wir die Definition rein, und das <algorithm brauchen wir in dem Fall auch. Das ist immer besser auch, wenn man das eh dazulädt, weil die meisten Funktionen das verwenden können. Für Vergleiche, für anderes ist das immer hilfreich. Und wir haben jetzt hier als nächstes mal eine Ausgabe-Routine. Das macht unser Leben ein bisschen leichter, weil wir die häufiger brauchen, als Parameter einen Text, als Information und natürlich eine Liste. Ich habe jetzt hier einfach mal einen Integer-Liste definiert: mit spitzer Klammern auf, integer, hier als Referenzparameter, hier innen brauchen wir einen Iterator, und dann geben wir einfach alle Listen-Elemente hier aus, indem wir hier mit 'mylist.begin' bis 'mylist.end' durchlaufen, so lange, bis das hier erfüllt ist, also, 'idx != mylist.end' ist. Und dann geben wir hier noch am Schluss einen Zeilenvorschub aus. Jetzt mal zum Hauptprogramm. Was können wir mit dieser Liste jetzt alles machen? Erst mal definieren wir natürlich auch eine Integer-Liste, dann einen Iterator. Das ist immer ganz gut, wenn man suchen muss und so weiter. Die Elemente werden jetzt hier mit 'push-back' einfach in die Liste reingeschrieben. Habe ich jetzt hier ganz unsortiert ein paar Dubletten, das ist egal. In der Liste kann alles Mögliche drin stehen. Und sie erinnern sich dran, statt Integer könnten wir auch hier eine komplizierte Datenstruktur unterbringen. Dann geben wir die Liste mal aus, um zu schauen, was da passiert ist. Im nächsten Schritt suche ich mal ein Element in dieser Liste, die Zahl 4. Wir haben hier Integer-Zahlen, dann kann ich das gleich so machen. Und wenn ich die gefunden habe, das ist jetzt was Besonderes. Dann füge ich an dieser Stelle 123 an. Das kann ich nämlich auch mit 'insert'. Das ist eine schöne Operation, gerade bei Listen braucht man sowas häufiger, Werte mal einzubauen. Die geben wir uns anschließend aus, dann sortieren wir die Liste, auch das geht hier bei der Liste. Das ist natürlich sehr hübsch. Und ich gebe die sortierte Liste anschließend aus. Dann, was praktisch ist. Natürlich kann ich auch Listen-Elemente löschen, wenn ich sie einfügen kann, - das macht ja nur dann Sinn - an der Position 'res'. Hier gebe ich einfach den Iterator an als Parameter. Und wir geben anschließend die Liste aus, und anschließend entferne ich ein Element mit dem Wert 100, 'remove' aber ein bisschen anders wie Arrays. Das zeige ich Ihnen nachher gleich in der Ausgabe. Das nächste, 'unique' ist eine interessante Operation. Die sorgt dafür, dass kein Element doppelt vorkommt. Dubletten werden also rausgenommen. Das ist auch der Grund, warum ich hier vorne mehrmals den gleichen Wert hier in die Liste reingeschrieben habe, damit wir das mal besser ansehen können. Mit 'reverse' kann man die gesamte Liste umdrehen, so dass die von vorne nach hinten oder von hinten nach vorne ausgegeben wird. Dann machen wir ein paar weitere Operationen, eine weitere Liste habe ich hier angelegt mit zwei Elementen, und die hänge ich jetzt an die erste Liste dran, und zwar mit dem splice-Operator. 'splice' wirkt eigentlich wie spliten, aber eigentlich ist es irgendeine Art 'merge'. Er hängt nämlich vorne die Elemente dran. Allerdings werden Sie auch hinten weggenommen. 'myliste2' gebe ich deshalb hier mal aus. Diese ist dann nämlich anschließend leer. Und dann sortieren wir mal diese beiden Listen. 'myliste', 'myliste2' ist eigentlich leer, deshalb hänge ich nochmal ein paar Werte dran, und sortiere die aber auch. Also, beide Listen sind sortiert. Das macht jetzt beim merge-Befehl wieder Sinn, sortiert einzubauen, weil die werden dann ineinander gemischt, während das 'splice' sie aneinander hängt. Es gibt auch noch drei andere Parameter-Varianten, mit denen man noch bisschen mehr einstellen kann, nämlich wo man das splicen möchte. Und hier, wie gesagt, merge ich sie und gebe dann das Ganze wieder aus. Jetzt schauen wir uns das Ganze mal an, starten es hier, und hier haben wir oben erst mal die Liste unsortiert mit den Dubletten, dann füge ich ein Element an der Position an, wo 4 ist. Und so wird es davor angefügt. Das kann man auch entsprechend einstellen, wenn man das möchte, vor diesen beiden Vierern. Ich sortiere die ganze Liste, die Dubletten werden dadurch ein bisschen schöner und klarer. Dann löschen wir ein Element mit 4, nämlich das 4, wo ich vorher gesucht habe und mit dem Iterator auch gefunden. Dann wird eine von den Vieren entfernt. Mit 'remove 100' nehme ich alle Elemente, die den Wert 100 haben, raus. Also es verhält sich 'remove' ein bisschen anders wie 'erased'. Mit 'unique' sorge ich dafür, dass keine Dubletten mehr vorkommen, die 24 sind die einzig Verbliebenen, in der Zwischenzeit. Dann kann man das Ganze umdrehen. Mit 'reversed' habe ich jetzt einfach die umgedrehte Liste. Und mit 'spliced' hänge ich die beiden Elemente vorne an, - das muss man sich halt merken - die wir neu hinzugefügt haben. Das Ganze ist natürlich unsortiert, weil wir nichts Besonders angegeben haben. Mit 'spliced2' habe ich nur die Liste zwar ausgegeben, die ist jetzt leer. Mit 'merge' hänge ich jetzt die weiteren Elemente, - da haben wir noch ein bisschen was reingeschrieben - die zweite Liste dran. Beide sind sortiert, das heißt, nach dem Merge ist die gesamte Liste automatisch auch sortiert. Das ist also das klassische Merge-Sort, was hier eigentlich implementiert ist. Kann man sehr effizient damit arbeiten. Ja, und hier habe ich, wie gesagt, da Elemente praktisch reinsortiert. Das ist eigentlich die Anwendung der Liste.

C++

Machen Sie sich mit den einfachen Grundlagen zu C++ vertraut und lernen Sie anhand zahlreicher Übungs- und Codebeispiele die Klassenkonzepte, Prozeduren und Funktionen kennen.

9 Std. 3 min (143 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Video-Training auf DVD mit Bonusmagazin

+ Tutorial to go: Mit Videos für iPod, iPhone & Co.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!