Ich schreibe eine quadtree-ähnliche Datenstruktur, die Matrizen von generischen Objekten enthält T
. Enthalten vier Unterknoten alle definierte Matrizen von T
Ich werde sie zu einer einzigen, größeren Matrix zusammenfassen und dann die Unterknoten löschen. Gibt es einen effizienteren Weg, dies zu tun, als Schleife durch jeden Verweis und Kopieren es über? Kann ich stattdessen Teile des Speichers kopieren?
Ejemplo:
T[,] _leaf1 = new T[64,64];
T[,] _leaf2 = new T[64,64];
T[,] _leaf3 = new T[64,64];
T[,] _leaf4 = new T[64,64];
// Populate leafs
T[,] _root = new T[128,128];
CopyInto(ref _root, ref _leaf1, 64, 64);
CopyInto(ref _root, ref _leaf2, 0, 64);
CopyInto(ref _root, ref _leaf3, 0, 0);
CopyInto(ref _root, ref _leaf4, 64, 0);