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


Класс cache_chunklist

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

Синтаксис

template <std::size_t Sz, std::size_t Nelts = 20>
class cache_chunklist

Параметры

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

Замечания

Этот шаблон класса использует оператор new для выделения блоков необработанной памяти, подлокации блоков для выделения хранилища для блока памяти при необходимости; он сохраняет выделенные блоки памяти в отдельном бесплатном списке для каждого блока и использует удаление оператора для удаления блока, если ни один из его блоков памяти не используется.

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

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

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

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

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

Требования

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

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

cache_chunklist::allocate

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

void *allocate(std::size_t count);

Параметры

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

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

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

cache_chunklist::cache_chunklist

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

cache_chunklist();

cache_chunklist::d eallocate

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

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

Параметры

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

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

См. также

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