Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 |
|---|---|
| přidělit | 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>
Obor názvů: stdext
cache_suballoc::přidělení
Přidělí blok paměti.
void *allocate(std::size_t count);
Parametry
počet
Počet prvků v poli, které se mají přidělit.
Návratová hodnota
Ukazatel na přidělený objekt.
cache_suballoc::cache_suballoc
Vytvoří objekt typu cache_suballoc.
cache_suballoc();
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ě.
počet
Počet objektů, které se mají uvolnit z úložiště.