Container aus Zeigern



  • Hallo zusammen,

    Ich habe mir mal etwas überlegt. Lohnt es sich, eine Template-Containerklasse zu schreiben, die mehrere Elemente nicht direkt als Member, sondern nur Zeiger auf diese speichert? Das heisst, beim Hinzufügen von Elementen würde einfach ein new ausgeführt und ein klasseninternes Zeiger-Array mit dem neuen Zeiger erweitert. Der Wert selber läge also irgendwo im dynamischen Speicherbereich.

    So hat man zwar meistens nicht aufeinanderfolgende Elemente. Das könnte eventuell fürs Iterieren ein Problem sein, aber ich nehme jetzt mal Indizes.
    Dafür kann man sehr schnell Elemente löschen, verschieben und einfügen, indem nur die Zeiger und nicht die Objekte selber manipuliert werden. Und Random Access ist ja auch sehr schnell, da man nur den Zeiger an der entsprechenden Stelle im Array dereferenzieren muss.

    Was spricht gegen ein solches Konzept? Die STL hat immerhin nichts Vergleichbares, oder? std::deque hat ja auch teilweise zusammenhängende Blöcke, und std::vector sowieso. Oder ist es einfach "unschön", wenn man seine Daten irgendwo fragmentiert herumliegen hat?



  • Lohnt sich und gibt es in boost: Pointer Container


Anmelden zum Antworten