cache_chunklist-Klasse
Definiert eine Blockzuweisung, die Speicherblöcke einheitlicher Größe zuweist und freigibt.
Syntax
template <std::size_t Sz, std::size_t Nelts = 20>
class cache_chunklist
Parameter
Sz
Die Anzahl der zuzuweisenden Elemente im Array
Hinweise
Diese Klassenvorlage verwendet neuen Operator zum Zuweisen von Blöcken des rohen Speichers, Unterzuweisung von Blöcken zum Zuordnen von Speicher für einen Speicherblock bei Bedarf. Sie speichert zugeordnete Speicherblöcke in einer separaten kostenlosen Liste für jeden Block und verwendet operatorenlöscht , um einen Block zuzuordnen, wenn keine seiner Speicherblöcke verwendet wird.
Jeder Speicherblock enthält Sz Bytes des verwendbaren Speichers und einen Zeiger auf den Block, zu dem er gehört. Jeder Block enthält Nelts
Speicherblöcke, drei Zeiger, ein Int und die Daten, die der Operator neu und der Operator löschen müssen.
Konstruktoren
Konstruktor | Beschreibung |
---|---|
cache_chunklist | Konstruiert ein Objekt vom Typ cache_chunklist . |
Memberfunktionen
Memberfunktion | Beschreibung |
---|---|
allocate | Belegt einen Speicherblock. |
deallocate | Gibt eine angegebene Anzahl von Objekten im Speicher frei, beginnend an einer angegebenen Position. |
Anforderungen
Header:<allocators>
Namespace: stdext
cache_chunklist::zuweisung
Belegt einen Speicherblock.
void *allocate(std::size_t count);
Parameter
count
Die Anzahl der zuzuweisenden Elemente im Array
Rückgabewert
Zeiger auf das zugewiesene Objekt.
Hinweise
cache_chunklist::cache_chunklist
Konstruiert ein Objekt vom Typ cache_chunklist
.
cache_chunklist();
Hinweise
cache_chunklist::d eallocate
Gibt eine angegebene Anzahl von Objekten im Speicher frei, beginnend an einer angegebenen Position.
void deallocate(void* ptr, std::size_t count);
Parameter
ptr
Ein Zeiger auf das erste Objekt, dessen Zuweisung zum Speicher aufgehoben werden soll.
count
Die Anzahl von Objekten, deren Zuweisung zum Speicherplatz aufgehoben werden soll.