Entscheidungshilfe Array, Vector, TList
-
Entscheidungshilfe Array, Vector, TList
Hallo,
Ich möchte eine Klasse Adressbuch erstellen, die folgende Funktionalität haben soll:
- Personendaten wie ID, Vorname, Nachname, Straße an eine dynamsiche Liste anfügen/ löschen.
- Nach jeder Eigenschaft soll soritert werden können (Vorname, Nachname etc.)
- Adressbuch lesen
- Adressbuch schreibenDa ich seit Stunden die verschiedensten Beispiele studiere, aber noch immer nicht die Funktionalität gefunden habe, hier die bitte um Entscheidungshilfe. Hilfreich wäre natürlich auch ein kleines Beispiel.
Gruß
Leo
-
Kenn mich mit dem BCB ned so aus ... aber:
Array, vector ListNen reines Array -> Haende Weg, fallst es nicht wirklich brauchst um C-Schnittstellen zu befuellen ! Ist unsicher und fehleranfaellig ! (man vergisst gerne zu loeschen und schreibt auch gerne ueber den bereich hinaus)
Am besten immer die Wrapperklassen verwenden. Die STL bringt dir nuetzliche Wrapper mit, fuer die entsprechenden Anwendungsfaelle. vector, list, deque, set, map ... etc. Die Borland libs werden dir auch angepasste versionen beiten, welche zu deinem Framework passt, aber das prinzip ist fasst aehnlich, nur der zugriff etwas anders.
vector -> wenn man schnell auf Index zugreifen will. also das 5. Element. Einfuegen recht langsam und zeitaufwendig, wenn der vector dynamisch erweitert wird.
list -> schnelles Einfuegen und Loeschen der Endpunkte (erstes und letztes element) Iteration ist auch schnell, aber zugriff auf "bestimmte" ziemlich langsam, weil per Hand gesucht werden muss.
set -> sortierte liste. einfuegen relativ langsam, weil sortiert wird ! schnelles finden von bestimmten elementen ...
map -> Hashtable. Zuordnung von wertepaaren. eigentlich erweiterung vom set. Schnelles finden vom Schluessel ....fuer ne Adressenliste ... kommt drauf an in welchen kontext du sie verwendest. Willst die Namen sortiert halten ... set (multiset, wenn doppelte eintraeg notwendig) willst nach mehreren Schluesseln sortieren :
1. liste und sortierallgorythmen verwenden ... (schnelles einfuegen, aber langsames soertieren)
2. Wildes Konstrukt aus ner List, und mehreren Hashtabeln (map) ... langsames einfuegen, aber kaum aufwand zum umsortieren ...willst gar ned sortieren ... liste !
CIao ...