Freigeben über


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.

Hinweise

Siehe auch

<allocators>