Eigener Speichermanager



  • Hallo,

    für ein Spiel möchte ich einen Speichermanager programmieren. Mir geht es darum nicht ständig Objekte erstellen und wieder löschen zu müssen.

    -Der Manager sollte eine bestimmte größe einen beliebigen Types(struct,class etc...) als Array anlegen.
    -Er müsste aus diesem Array ein Element löschen können.

    Am liebsten will ich das so machen das bei jedem Eintrag gespeichert wird ob er aktiv ist oder nicht. Sollte er nicht aktiv sein darf er mit neuen Werten überschrieben werden. Die Reihenfolge in der danach die Objekte gespeichert sind ist egal. Hauptsache ich kann in einer for-Schleife alle Eintrage durchlaufen.

    Hab aber echt keinen Plan wo ich anfangen soll 🙄

    Also klar ist das ich Template verwenden werde.



  • Wie wärs mit einem std::deque mit boost::shared_array Zeigern?

    Die shared_array Template Klasse gibt automatisch den Speicher wieder frei wenn kein Zeiger mehr auf das Array zeigt.

    Und std::deque müsste dir bekannt sein oder?

    mfg.



  • Danke, ich schau mir das genauer an. Habe ehrlich gesagt sehr sehr sehr selten was mit der STL gemacht. Und das was ich machte waren was mit cout,string und diese Sachen.



  • Hier: http://cppreference.com/cppdeque/
    Das müsste interesant sein. Vor allem erase(). Das ist dann das was du brauchst. Das gute ist nämlich, dass erase() auch die destruktoren der shared_array objekte aufruft und damit der speicher wieder freigegeben wird. (glaub ich, bin mir gerade irgentwie nicht 100% sicher.)

    mfg.


Anmelden zum Antworten