Was sind "allocator"
-
Hi,
wenn ich mit der STL arbeite komme sehe ich immer wieder das Wort "Allocator", was ist das? Ich habe versucht den Wikipedia Artikel zu verstehen aber irgendwie ist das alles sehr abstrakt und schwer zu verstehen, http://en.wikipedia.org/wiki/Allocator_(C++)
Kann das jemand einfach erklaeren?

-
Ein allocator reserviert Speicher und erzeugt darin Objekte.
std::allocator ist hauptsächlich ein Wrapper um die verschiedenen new- und delete-operatoren.
Normalerweise reicht der Standard-Allocator aus, aber wenn man eine hohe Geschwindigkeit braucht und viele new-calls hat, kann man dadurch Zeit einsparen, z.B. indem man aus einem memory-pool alloziiert (siehe boost).Selber habe ich erst einmal einen eigenen Allocator geschrieben, nämlich einen der Speicher in Blöcken reserviert, um std::list so etwas zu beschleunigen, und das habe ich auch nur gemacht, weil man den Geschwindigkeitsunterschied nicht nur gemessen, sondern sogar schon gemerkt hat.
-
Danke! Die Erklaerung hat mir sehr weiter geholfen!
-
bzw. wenn du ihn noch hast den Sourcecode zu deinem selbst geschriebenen allocator kannst du ihn ja mal posten, mich wuerde das sehr interessieren.