@Kyuu:
Ich denke mal das Iterieren durch Spielobjekte ist sehr wichtig, z.B. um die den Status aller Spielobjekte zu aktualiseren.
Mir persoenlich waeren solche index Spielereien auch zu riskant. Vielleicht ist es minimal schneller und spart dir etwas Speicher, dafuer ist der Code verwirrender und Fehleranfaelliger.

@Ineluki:
Das Einfuegen in einem Vector mit push_back hat eine amortisierte Laufzeit von O(1). Gerade in meinem Fall werden elemente ja oft geloescht und neu eingefuegt, weshalb der Vektor ab einem bestimmten Zeitpunkt nicht mehr reallokiert werden muss. Ansonsten ja... du hattest praktisch den selben Ansatz. Ich war nur zu Faul zum lesen. ^^"

@DFYX
Prinzipiell kann man nur die optimierte Struktur fuers Rendern beibehalten und den Rest mit Pointern regeln. Daraus folgt dann auch, dass Render unabhaengige Prozesse, zum Beispiel das aktualisieren der Spielobjekte ueber die optimierte Struktur laufen (wie will mann sonst ueber die Spielobjekte iterieren?). Dazu kommt auch, das man die optimierte Struktur aktualiseren koennen muss, ohne auf eine andere Struktur zurueck zu greifen. Bei einer sortieren Liste ist das machbar, bei einem KD tree ist das schon schwerer. Und schliesslich muessen alle Referencen unterhalb von Objekten mit Pointern geloest werden, da schneller Zugriff ueber index mit der optimierten Struktur alleine nicht geht.
Ich bevorzuge an der Stelle indizes anstelle von Pointern. Bei indizes kannst du bei geloeschten Spielobjekten einfach null zurueck geben - bei Pointern hast du da ein Problem. (es sei denn du verwendest smart pointers... da hast du dann wieder andere Probleme.)

Also ja, im Prinzip ist so eine Struktur nicht notwendig ums zum Laufen zu bekommen, aber auf langer sich zahlt es sich schon aus, finde ich.