Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
9. Mär 2012
Gerade bei großen Datenmengen kann der Overhead des TList-Objekte schnell man nicht mehr ins Gewicht fallen.
Denn der reine Verwaltungsoverhead ist garnicht so groß. (nur ein paar wenig Byte)
Das Einzige, was größer auffallen könnte, ist eine Geschwindigkeits- und Speicheroptimierung.
So wird beim .Add nicht nur für das eine Feld Speicher reserviert, sondern gleich für ein paar mehr. Vorteil...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
8. Mär 2012
Ich nutze diese gerne mal, als Rückgabewerte, für irgendwelche kleineren Listen, denn hier muß sich keiner um die Speicherfreigabe kümmern.
Nicht umsonst sollte z.B. keine TStringList als Result nutzen, da dort die Sache mit der Freigabe nicht so schön zu klären ist.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
8. Mär 2012
Ordinale Typen, Fließkommatypen und alles mögliches kleines einfaches Getier, welches in ein Register paßt und wo kein schliommes Speichermanagement dahintersteht,
das sind "richtige" Rückgabewerte und keine impliziten Out/Var-Parameter.
Aber bei diesen Sachen, wie String und dyn. Array, ist das soeine Sache.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
8. Mär 2012
Mit der Speicherverwaltung gibt es eigentlich keine Probleme.
Aber mit der Initialisierung muß man aufpassen.
http://www.delphipraxis.net/166950-suche-string-hex-funktion-2.html#post1155075 (#16-#18)
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
8. Mär 2012
aList := Blist ; Ist ja im Endeffekt nur eine einfache Integerzuweisung und macht keine Probleme.
Ihr könnt aber dennoch mal, in den Projektoptionen, die Bereichsprüfung aktivieren, denn Schreibzugriffe auf nichtexistierende Fehler bereiten manchmal kleine Problemchen. :angle:
Aber aList := bList; oder aList := bList; sind da etwas anders zu betrachten, denn dyn. Arrays verfügen zwar über...