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, class Max>
class cache_freelist
Parametry
Sz
Liczba elementów w tablicy do przydzielenia.
Maksimum
Maksymalna klasa reprezentująca maksymalny rozmiar bezpłatnej listy. Może to być max_fixed_size, max_none, max_unbounded lub max_variable_size.
Uwagi
Szablon klasy cache_freelist obsługuje bezpłatną listę bloków pamięci o rozmiarze Sz. Gdy lista bezpłatna jest pełna, używa operatora delete do cofnięcia przydziału bloków pamięci. Gdy lista bezpłatna jest pusta, używa operatora nowego do przydzielenia nowych bloków pamięci. Maksymalny rozmiar bezpłatnej listy jest określany przez klasę maksymalną przekazaną w parametrze Max .
Każdy blok pamięci zawiera bajty pamięci do użycia i dane, które operator new i operator delete wymagają.
Konstruktory
| Konstruktor | opis |
|---|---|
| cache_freelist | Tworzy obiekt typu cache_freelist. |
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_freelist::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_freelist::cache_freelist
Tworzy obiekt typu cache_freelist.
cache_freelist();
cache_freelist::d allocate
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.