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

C++

Priority-Queue Teil 2

Testen Sie unsere 2019 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Für den richtigen Vergleich von Objekten müssen Sie deren Operatoren überladen. Sehen Sie dem Trainer beim Überladen zu und erfahren Sie einige Tipps vom Trainer.

Transkript

Bei der Priority-Queue, bei der priorisierten Warteschlange kann man auch selber definieren, welche Vergleichsoperationen verwendet werden sollen, und natürlich auch, welcher Container verwendet wird. Also hier mein Beispiel, zunächst einmal habe ich hier noch myclass definiert, aber in der Klasse habe ich jetzt mal ein bisschen mehr gemacht, nicht nur den "kleiner"-Vergleich, sondern auch den "größer"-Vergleich, und den Ist-Ist-Gleich-Vergleiche zur Sicherheit auch mitdefiniert. Bezogen auf unser eigenes Element Priorität, also prio1, hier könnte ich natürlich auch den String noch miteinfließen. und da kommt es darauf an, was ich damit machen will. Also, wichtig ist hier mal, alle zu definieren, weil wir nachher verschiedene Umschalter dann verwenden. Ich habe jetzt hier auch die Ausgabe schon mal umgeschrieben, nämlich eine Ausgabe, die jetzt spezialisiert ist für vector<int, less. Also, das muss ich hier auch mal alles angeben. Wenn ich die Priority-Queue hier mit Parametern nachher versehe, muss ich das hier bei der Ausgabe-Routine natürlich genauso machen. Das soll für Integer sein. Es wird als internes Containerelement in Vektor verwendet, und die Vergleichsoperation less wollen wir verwenden zur Sortierung. Nun, und beim Hauptprogramm machen wir das hier entsprechend. Da muss ich natürlich ganz genauso definieren. Dann werden wieder einige Elemente drauf gepuscht und das Ganze ausgegeben. So, und hier haben wir jetzt unsere Nachrichtenklasse und da geben wir auch einige Elemente drauf. Auch hier werden wir das mit dem Vector machen, liste kann man auch verwenden. Mit less werden wir vergleichen. Und da such er sich dann unsere kleine Operation aus. Man muss also hier less reinschreiben. Das hängt mit der Zuordnung hier bei den STL-Bibliotheken zusammen. Dann gebe ich ein-, zweimal Elemente raus, und hier tun mal ein paar Elemente drauf puschen und anschließend den Rest ausgeben. Ich starte es mal und dann zeige Ihnen mal, was passiert, wenn man die Funktion ändert. So, jetzt habe ich hier erst mal das ganz normal, dann werden unsere Nachrichten brav wieder ausgegeben in der Prioritäten-Reihenfolge. hier unten zuletzt die "Weltneuheit". Nun, es ist hier aber gerade bisschen umgekehrt. Wenn ich das umgekehrt haben möchte, dass die Neuheiten zuerst kommen, dann muss ich hier greater schreiben. Und zum Glück haben wir das auch oben definiert. Wenn man das nicht definieren würde, jetzt als friend-Klasse, wird dann Fehler bringen. Jetzt kommt die "Weltneuheit super" wieder brav ganz oben. Also, hier kann ich mich entscheiden, wie ich das sortiert haben möchte. Das ist hier, hier wird default-Vergleich verwendet. Da kann ich das natürlich auch machen. Für diesen Datentyp muss ich dadurch nichts definieren, aber wie man sieht, so ganz einfach ist es doch dann nicht. Wir schauen, was er hier anmosert. Da habe ich nämlich in der Tat ein Problem. Und Sie werden auch vielleicht verstehen, wo das Problem liegt. Es ist ganz einfach hier. Es sieht also dumm aus, dass man hier doppelt reinschreiben muss, aber ich muss in der Tat, wenn ich die Ausgabe verwende, für diesen Datentyp, obwohl es hier eigentlich überhaupt keine Auswirkung hat hier für die Ausgabe, durch Überladen definiere ich mit jetzt eine zweite Ausgabe-Routine, und dann habe ich das hier brav in der anderen Reihenfolge sortiert. Also, das ist ein bisschen tricky. Auch die Dekleration ist etwas gewöhnungsbedürftig. Da muss man sich wirklich erst mal dran gewöhnen, damit man sieht, wie man das eingeben kann, aber das Ganze ist leistungsstark eben. Man kann hier wirklich sehr viel customisen, wie man es eben selber braucht zur Optimierung.

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!