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, size_t Nelts = 20>
class cache_suballoc
Parameterar
Sz
Antalet element i matrisen som ska allokeras.
Anmärkningar
I cache_suballoc-klassmallen lagras frigjorda minnesblock i en kostnadsfri lista med obegränsad längd, med hjälp av freelist<sizeof(Type), max_unbounded>, och delar upp minnesblock från ett större segment som allokerats med operatorn ny när den kostnadsfria listan är tom.
Varje segment innehåller Sz * Nelts byte av användbart minne och de data som operatören ny och operatören tar bort kräver. Allokerade segment frigörs aldrig.
Konstruktörer
| Konstruktor | Beskrivning |
|---|---|
| cache_suballoc | Konstruerar ett objekt av typen cache_suballoc. |
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_suballoc::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_suballoc::cache_suballoc
Konstruerar ett objekt av typen cache_suballoc.
cache_suballoc();
cache_suballoc::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.