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, class Max>
class cache_freelist
Parameterar
Sz
Antalet element i matrisen som ska allokeras.
Max
Den högsta klassen som representerar den maximala storleken på den kostnadsfria listan. Detta kan vara max_fixed_size, max_none, max_unbounded eller max_variable_size.
Anmärkningar
Cache_freelist-klassmallen har en kostnadsfri lista över minnesblock av storlek Sz. När den kostnadsfria listan är full används operatorborttagning för att frigöra minnesblock. När den kostnadsfria listan är tom används operatorn new för att allokera nya minnesblock. Den maximala storleken på den kostnadsfria listan bestäms av den klass maxklass som skickades i parametern Max .
Varje minnesblock innehåller Sz byte med användbart minne och de data som operatören ny och operatören tar bort kräver.
Konstruktörer
| Konstruktor | Beskrivning |
|---|---|
| cache_freelist | Konstruerar ett objekt av typen cache_freelist. |
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_freelist::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_freelist::cache_freelist
Konstruerar ett objekt av typen cache_freelist.
cache_freelist();
cache_freelist::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.