M
Ich will es nochmal genauer erklärern, obwohl ich es eigentlich nur pushen wollte.
Also ich habe jetzt folgende Idee:
#define STL_X STL_VECTOR/STL_LIST/STL_WASAUCHIMMER
Also STL_X 1 hat nun als Objekt einfach nur eine Klasse minerseits.
Genauergesagt ein Basisklassenzeiger, aber das ist trivial.
Dann habe ich vor, dass diese Klasse einen Zeiger (als Zeiger genutzt) auf die Struktur MAVXSpriteInfoX beinhaltet.
zweitens habe ich eine STL_X 2 die als Objekt MAVXSpriteInfoX beinhaltet.
Beim Laden lasse ich genausoviele STL_X 1 wie STL_X 2 erstellen.
Dann lasse ich die Zeiger auf MAVXSpriteInfoX jeweils auf das Element von STL_X 2 zeigen, sodass ich dann durch einfachen Zugriff auf das Element MAVXSpriteInfo* zeiger bei STL_X 1 auch die Element bei STL_X 2 veändere.
Soweit klar?
Jetzt stellt sich die Frage, warum...
Nun, die zeichenfunktion braucht wie gesagt einen Zeiger (als Array genutzt).
Wenn ich nun STL_X 2 als STL Vector habe, dann liegen die Teile linear im Speicher und ich müsste durch übergabe der Anfangsadresse einfach so übergeben können.
Da ich nicht durch Primärschlüssel auf einzelne Elemente in STL_X 1 zugreife, reicht es einen Vector oder eine Liste zu verwenden, das spart Speicher und reicht so auch.
Ich werde allerdings durch die IDs auf einzelne Elemente zugreifen müssen und auch die ganze Liste durchsuchen müssen (allerdings durch eigenen Algorithmus).
Deswegen würde mir die STL Map in der Sache auch nicht beim Suchen helfen.
Nun stellen sich mir die Fragen:
Ist mein Konzept so in Ordnung? Wenn nicht, warum nicht?
Was sollte ich nun genau für STL_X 1 und STL_X 2 verwenden? Am besten mit Erklärung.
Liegen die Objekte im Speicher wirklich linear, wenn ich Vector oder List verwende, sodass ich die Anfangsadrsese übergeben kann und dann genauso verfahren kann, als wäre es ein Array (mit der Anfangsadresse?)
Hier nochmal was STL_X 1 und 2 sind.
STL_X 1 hat als Objekt eine Klasse, die >>>u.A.<<< einen Zeiger auf ein MAVXSpriteInfoX hat.
STL_X 2 hat als Object MAVXSpriteInfoXs, auf die von STL_X 1 gezeigt wird.
Der Zeiger in STL_X 1 ist dafür da, dass die Klasse die daten einfach verändern kann und sogleich die Daten in STL_X 1 linear bereitstehen sollten, um dann einfach die Startadresse zu übergeben.
Danke im Voraus
mfG MAV