AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi StringList oder dynamisches Array.

StringList oder dynamisches Array.

Ein Thema von MiKaEr · begonnen am 8. Feb 2012 · letzter Beitrag vom 10. Feb 2012
 
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
905 Beiträge
 
Delphi 12 Athens
 
#7

AW: StringList oder dynamisches Array.

  Alt 9. Feb 2012, 08:11
Und das Array noch nicht ganz gefüllt ist, stimmt das, ja. Wenn aber Setlength aufgerufen werden muss, muss auch umkopiert werden. (Und weil man gelegentlich Fragen hört wie "Warum dauert for i := 0 to 100000 do setlength(myarray, length(myarray) + 1) so lange", weise ich da immer wieder gerne drauf hin. )

Bei der Stringlist wird das Setlength "intelligenter" aufgerufen, da die Kapazität (length) nicht nur um 1 erhöht wird, sondern um 25%. Damit kommt man amortisiert auch auf eine konstante Laufzeit zum Einfügen eines Elements. Wenn man capacity vor dem Füllen passend setzt, dürfte das Verhalten im Wesentlichen mit dem eines normalen Arrays übereinstimmen.

Dass beim Array ganze Strings kopiert werden, glaube ich auch nicht. Wie das intern genau funktioniert, weiß ich zwar nicht, aber ein "Array", bei dem jeder Eintrag eine andere Länge haben kann, würde das Ansprechen eines beleibigen Elements per Index etwas aufwändiger machen.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz