cache_chunklist — Klasa
Definiuje alokator bloków, który przydziela i cofa przydział bloków pamięci o pojedynczym rozmiarze.
Składnia
template <std::size_t Sz, std::size_t Nelts = 20>
class cache_chunklist
Parametry
Sz
Liczba elementów w tablicy do przydzielenia.
Uwagi
Ten szablon klasy używa operatora nowego do przydzielania fragmentów nieprzetworzonej pamięci, bloków przydziału podrzędnego w celu przydzielenia magazynu dla bloku pamięci w razie potrzeby; przechowuje cofniętą przydział bloków pamięci na oddzielnej liście wolnej dla każdego fragmentu i używa operatora delete , aby cofnąć przydział fragmentu, gdy żaden z bloków pamięci nie jest używany.
Każdy blok pamięci zawiera bajty pamięci do użycia i wskaźnik do fragmentu, do którego należy. Każdy fragment zawiera Nelts
bloki pamięci, trzy wskaźniki, int i dane, które operator new i operator delete wymagają.
Konstruktory
Konstruktor | opis |
---|---|
cache_chunklist | Tworzy obiekt typu cache_chunklist . |
Funkcje składowe
Funkcja składowa | opis |
---|---|
allocate | Przydziela blok pamięci. |
Deallocate | Zwalnia określoną liczbę obiektów z magazynu rozpoczynającego się na określonej pozycji. |
Wymagania
Nagłówek:<alokatory>
Przestrzeń nazw: stdext
cache_chunklist::przydziel
Przydziela blok pamięci.
void *allocate(std::size_t count);
Parametry
count
Liczba elementów w tablicy do przydzielenia.
Wartość zwracana
Wskaźnik do przydzielonego obiektu.
Uwagi
cache_chunklist::cache_chunklist
Tworzy obiekt typu cache_chunklist
.
cache_chunklist();
Uwagi
cache_chunklist::d eallocate
Zwalnia określoną liczbę obiektów z magazynu rozpoczynającego się na określonej pozycji.
void deallocate(void* ptr, std::size_t count);
Parametry
ptr
Wskaźnik do pierwszego obiektu, który ma zostać cofnięty z magazynu.
count
Liczba obiektów do cofnięcia przydziału z magazynu.