Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Definierar en blockallokerare som allokerar och frigör minnesblock av en enda storlek.
Syntax
template <std::size_t Sz, std::size_t Nelts = 20>
class cache_chunklist
Parameterar
Sz
Antalet element i matrisen som ska allokeras.
Anmärkningar
Den här klassmallen använder operatorn new för att allokera bitar av rådataminne, delallokera block för att allokera lagring för ett minnesblock när det behövs. den lagrar frigjorda minnesblock i en separat kostnadsfri lista för varje segment och använder operatörsborttagning för att frigöra ett segment när inget av dess minnesblock används.
Varje minnesblock innehåller Sz byte med användbart minne och en pekare till det segment som det tillhör. Varje segment innehåller Nelts minnesblock, tre pekare, en int och de data som operatorn ny och operatören tar bort kräver.
Konstruktörer
| Konstruktor | Beskrivning |
|---|---|
| cache_chunklist | Konstruerar ett objekt av typen cache_chunklist. |
Medlemsfunktioner
| Medlemsfunktion | Beskrivning |
|---|---|
| allokera | Allokerar ett minnesblock. |
| frigöra | Frigör ett angivet antal objekt från lagring som börjar på en angiven position. |
Kravspecifikation
Rubrik:<allokerare>
Namnområde: stdext
cache_chunklist::allokera
Allokerar ett minnesblock.
void *allocate(std::size_t count);
Parameterar
antal
Antalet element i matrisen som ska allokeras.
Returvärde
En pekare till det allokerade objektet.
cache_chunklist::cache_chunklist
Konstruerar ett objekt av typen cache_chunklist.
cache_chunklist();
cache_chunklist::d eallocate
Frigör ett angivet antal objekt från lagring som börjar på en angiven position.
void deallocate(void* ptr, std::size_t count);
Parameterar
ptr
En pekare till det första objektet som frigörs från lagringen.
antal
Antalet objekt som ska frigöras från lagringen.