cache_suballoc — 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, size_t Nelts = 20>
class cache_suballoc
Parametry
Sz
Liczba elementów w tablicy do przydzielenia.
Uwagi
Szablon klasy cache_suballoc przechowuje cofnięto przydział bloków pamięci na liście bezpłatnej o niezwiązanej długości, przy użyciu parametrów freelist<sizeof(Type), max_unbounded>
i podrzędnych przydziałów bloków pamięci z większego fragmentu przydzielonego operatorowi nowe , gdy lista bezpłatna jest pusta.
Każdy fragment przechowuje Sz * Nelts
bajty pamięci do użytku oraz dane, których wymaga operator new i operator delete . Przydzielone fragmenty nigdy nie są zwalniane.
Konstruktory
Konstruktor | opis |
---|---|
cache_suballoc | Tworzy obiekt typu cache_suballoc . |
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_suballoc::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_suballoc::cache_suballoc
Tworzy obiekt typu cache_suballoc
.
cache_suballoc();
Uwagi
cache_suballoc::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.