Класс cache_freelist
Задает распределитель блоков, который выделяет и освобождает блоки памяти одного размера.
Синтаксис
template <std::size_t Sz, class Max>
class cache_freelist
Параметры
Sz
Число выделяемых элементов в массиве.
Max
Класс max, представляющий максимальный размер списка свободных блоков. Это может быть класс max_fixed_size, max_none, max_unbounded или max_variable_size.
Замечания
Шаблон класса cache_freelist поддерживает свободный список блоков памяти размера Sz. Если бесплатный список заполнен, оператор удаляет блоки памяти. Если свободный список пуст, он использует оператор new для выделения новых блоков памяти. Максимальный размер свободного списка определяется классом max class, переданным в параметре Max .
Каждый блок памяти содержит Sz байты используемой памяти, а также данные, которые требуются для нового оператора и удаления оператора.
Конструкторы
Конструктор | Description |
---|---|
cache_freelist | Создает объект типа cache_freelist . |
Функции элементов
Функция-член | Description |
---|---|
allocate | Выделяет блок памяти. |
deallocate | Освобождает указанное число объектов из памяти, начиная с заданной позиции. |
Требования
Заголовок:<распределители>
Пространство имен: stdext
cache_freelist::allocate
Выделяет блок памяти.
void *allocate(std::size_t count);
Параметры
count
Число выделяемых элементов в массиве.
Возвращаемое значение
Указатель на выделяемый объект.
Замечания
cache_freelist::cache_freelist
Создает объект типа cache_freelist
.
cache_freelist();
Замечания
cache_freelist::d eallocate
Освобождает указанное число объектов из памяти, начиная с заданной позиции.
void deallocate(void* ptr, std::size_t count);
Параметры
ptr
Указатель на первый объект, который необходимо освободить из хранилища.
count
Количество объектов для освобождения из хранилища.