Поделиться через


Класс cache_freelist

Задает распределитель блоков, который выделяет и освобождает блоки памяти одного размера.

Синтаксис

template <std::size_t Sz, class Max>
class cache_freelist

Параметры

Sz
Число выделяемых элементов в массиве.

Макс
Класс max, представляющий максимальный размер списка свободных блоков. Это может быть класс max_fixed_size, max_none, max_unbounded или max_variable_size.

Замечания

Шаблон класса cache_freelist поддерживает свободный список блоков памяти размера Sz. Если бесплатный список заполнен, оператор удаляет блоки памяти. Если свободный список пуст, он использует оператор new для выделения новых блоков памяти. Максимальный размер свободного списка определяется классом max class, переданным в параметре Max .

Каждый блок памяти содержит Sz байты используемой памяти, а также данные, которые требуются для нового оператора и удаления оператора.

Конструкторы

Конструктор Описание
cache_freelist Создает объект типа cache_freelist.

Функции элементов

Функция-член Описание
размещать Выделяет блок памяти.
Освобождения Освобождает указанное число объектов из памяти, начиная с заданной позиции.

Требования

Заголовок:<распределители>

Пространство имен: stdext

cache_freelist::allocate

Выделяет блок памяти.

void *allocate(std::size_t count);

Параметры

число
Число выделяемых элементов в массиве.

Возвращаемое значение

Указатель на выделяемый объект.

cache_freelist::cache_freelist

Создает объект типа cache_freelist.

cache_freelist();

cache_freelist::d eallocate

Освобождает указанное число объектов из памяти, начиная с заданной позиции.

void deallocate(void* ptr, std::size_t count);

Параметры

ptr
Указатель на первый объект, который необходимо освободить из хранилища.

число
Количество объектов для освобождения из хранилища.

См. также

<Распределители>