Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#14

AW: Zeitkritische Array-Prüfung

  Alt 21. Dez 2014, 14:27
Das Problem mit den Arrays ist doch, dass die sich in der Länge ändern können und dann war es dass mit dem linearen Array (bzw. man braucht eine riesige Umkopieraktion).

Wäre da nicht eine Klasse besser, die dieses 3D-Konstrukt beherbergt? Da könnte man dann so einiges kapseln und sichern und auch auf Änderungen reagieren.
Delphi-Quellcode:
TData<T> = class
public
  property Value[x,y,z:Integer] : T read GetValue write SetValue;
end;
Den Zugriff kann man dann über ein Dictionary abbilden
Delphi-Quellcode:
TDataPoint = record
  x, y, z : integer;
end;

FData : TDictionary<TDataPoint,T>;
Und für die Statistik nimmt man sich ein weiteres Dictionary
Delphi-Quellcode:

FStat : TDictionary<T,Integer>;
Der Setter nimmt nun den alten Wert aus der Statistk und fügt den neuen Wert ein. Zum Vergleichen benötigt man nur noch die Statistik.

Ist ein DataPoint nicht im Dictionary, dann gibt es als Wert Default(T) zurück und wenn Default(T) gesetzt wird, dann wird der Eintrag aus dem Dictionary entfernt.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (21. Dez 2014 um 14:31 Uhr)
  Mit Zitat antworten Zitat