Abstrakte Datentypen beschreiben ist mal ne Aufgabe 😀
☺
Das sieht doch schon ganz gut aus! Ich würde allerdings den Typen urlListItem
als Implementationsdetail der Klasse behandeln - es sei denn, Du brauchst das Paar auch außerhalb öfters.
Persönlich tue ich mich auch immer schwer mit diesen klein geschriebenen Klassennamen, aber das scheint so eine Konvention in C++-Land zu sein.
Ich habe mal grob die Klasse zusammengeschrieben, wie sie aussehen könnte. Dabei könnte man allerdings das std::list<struct> durch eine std::map ersetzen, denke ich mal.
Dann verlierst Du aber die Eigenschaft der Liste, die Sortierung beizubehalten. Ich würde mich erst mal auf die API konzentrieren und die Interna erst anfassen, wenn nötig. Du könntest z.B. eine map
als zusätzlichen Index erst dann hinzufügen, wenn sich das Laufzeitverhalten ungünstig entwickelt (z.B. weil Du 30 Millionen URLs verwaltest anstatt der angepeilten 200).
Außerdem würde ich noch an den Signaturen arbeiten und z.B. const
Referenzen einsetzen. Die Getter können auch als const
deklariert werden.
Anstatt des "NUM" zur Sortierung habe ich nun die Haupt-Url als Kopie abgelegt (könnte eine Referenz sinnvoller sein).
Möglicherweise. Du musst dann aber sicherstellen, dass die Referenz immer auf etwas zeigt, das im Speicher vorhanden ist.
Der Code ist ungetestet! Ich werde mich daran machen eine Beispiel-Umgebung zu erstellen, in der ich die Klasse benutze.
Schreib doch eine Testsuite (Stichwort TDD).
Ciao
robert