Dela via


cache_suballoc-klass

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.

Se även

<allokerare>