cache_chunklist osztály

Egy blokkelosztót határoz meg, amely egyetlen méretű memóriablokkokat foglal le és szabadít fel.

Szemantika

template <std::size_t Sz, std::size_t Nelts = 20>
class cache_chunklist

Paraméterek

Sz
A lefoglalni kívánt tömb elemeinek száma.

Megjegyzések

Ez az osztálysablon az új operátort használja a nyers memória adattömbjeinek lefoglalásához, a blokkok pedig szükség esetén a memóriablokkok tárhelyének lefoglalásához. a felszabadított memóriablokkokat külön szabad listában tárolja minden egyes adattömbhöz, és az operátor törlésével felszabadít egy adattömböt, ha egyik memóriablokkja sincs használatban.

Minden memóriablokk sz bájtnyi használható memóriát és egy mutatót tartalmaz arra az adattömbre, amelyhez tartozik. Minden adattömb tartalmaz Nelts memóriablokkokat, három mutatót, egy intet, valamint az új és operátortörlésioperátor által igényelt adatokat.

Konstruktorok

Konstruktor Leírás
cache_chunklist Egy típusú cache_chunklistobjektumot hoz létre.

Tagfüggvények

Tagfüggvény Leírás
lefoglal Memóriablokkot foglal le.
felszabadítás Meghatározott számú objektumot szabadít fel a tárterületről egy adott pozíciótól kezdve.

Követelmények

Fejléc:<kiosztók>

Névtér: stdext

cache_chunklist::allocate

Memóriablokkot foglal le.

void *allocate(std::size_t count);

Paraméterek

gróf
A lefoglalni kívánt tömb elemeinek száma.

Visszaadott érték

Mutató a lefoglalt objektumra.

cache_chunklist::cache_chunklist

Egy típusú cache_chunklistobjektumot hoz létre.

cache_chunklist();

cache_chunklist::d eallocate

Meghatározott számú objektumot szabadít fel a tárterületről egy adott pozíciótól kezdve.

void deallocate(void* ptr, std::size_t count);

Paraméterek

ptr
Mutató az első tárolóból felszabadítandó objektumra.

gróf
A tárolóból felszabadítandó objektumok száma.

Lásd még

<kiosztók>