Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 |
|---|---|
| przydzielić | 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
liczba
Liczba elementów w tablicy do przydzielenia.
Wartość zwracana
Wskaźnik do przydzielonego obiektu.
cache_chunklist::cache_chunklist
Tworzy obiekt typu cache_chunklist.
cache_chunklist();
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.
liczba
Liczba obiektów do cofnięcia przydziału z magazynu.