Registriert seit: 6. Mär 2013
6.156 Beiträge
Delphi 10 Seattle Enterprise
|
AW: Dictionary statt binärer Suche?
7. Aug 2015, 13:27
Das was du bei einem TDictionary<>
im Konstruktor angibst ist die "Startkapazität"- Also auf wie viele Einträge das Dictionary vorbereitet ist bevor es komplett umstrukturieren muss. Bei Containern wie der TList<> ist das gleich: Intern legt er es in einem Array ab. Wenn das Array zu voll wird, reserviert er sich den doppelten Platz davon, kopiert den alten Inhalt in das neue Array und gibt das alte frei. Beim Dictionary ähnlich, nur dass es (ohne zu messen) wohl um einiges zeitaufwändiger ist.
Siehe auch: TDictionary<>.TrimExcess()
Wenn du also die maximale Größe im Voraus weißt kann das einiges an Zeit sparen.
PS: Ich weiß nicht was du genau machst, aber wenn du dem Dictionary etwas hinzugefügt hast bekommst du es auch mit TryGetValue wieder heraus.
Geändert von Der schöne Günther ( 7. Aug 2015 um 13:33 Uhr)
|