cache_suballoc – třída
Definuje blokový alokátor , který přiděluje a uvolní bloky paměti jedné velikosti.
Syntaxe
template <std::size_t Sz, size_t Nelts = 20>
class cache_suballoc
Parametry
Sz
Počet prvků v poli, které se mají přidělit.
Poznámky
Šablona třídy cache_suballoc ukládá uvolněné paměťové bloky do bezplatného seznamu s nevázanou délkou pomocí freelist<sizeof(Type), max_unbounded>
a suballokuje bloky paměti z většího bloku přiděleného operátorem new , pokud je seznam volných položek prázdný.
Každý blok dat obsahuje Sz * Nelts
využitelné bajty paměti a data, která operátor nový operátor a operátor odstraní , vyžadují odstranění. Přidělené bloky dat nejsou nikdy uvolněny.
Konstruktory
Konstruktor | Popis |
---|---|
cache_suballoc | Vytvoří objekt typu cache_suballoc . |
Členské funkce
Členová funkce | Popis |
---|---|
allocate | Přidělí blok paměti. |
uvolnit | Uvolní zadaný počet objektů od úložiště počínaje zadanou pozicí. |
Požadavky
Záhlaví:<alokátory>
Namespace: stdext
cache_suballoc::přidělení
Přidělí blok paměti.
void *allocate(std::size_t count);
Parametry
count
Počet prvků v poli, které se mají přidělit.
Návratová hodnota
Ukazatel na přidělený objekt.
Poznámky
cache_suballoc::cache_suballoc
Vytvoří objekt typu cache_suballoc
.
cache_suballoc();
Poznámky
cache_suballoc::d eallocate
Uvolní zadaný počet objektů od úložiště počínaje zadanou pozicí.
void deallocate(void* ptr, std::size_t count);
Parametry
ptr
Ukazatel na první objekt, který se má uvolnit z úložiště.
count
Počet objektů, které se mají uvolnit z úložiště.