Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.