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


Класс cache_suballoc

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

Синтаксис

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

Параметры

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

Замечания

Шаблон класса cache_suballoc хранит выделенные блоки памяти в свободном списке с несвязанной длиной, используя freelist<sizeof(Type), max_unbounded>и подраспределяет блоки памяти из более крупного блока, выделенного оператором , новым , когда свободный список пуст.

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

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

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

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

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

Требования

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

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

cache_suballoc::allocate

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

void *allocate(std::size_t count);

Параметры

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

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

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

cache_suballoc::cache_suballoc

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

cache_suballoc();

cache_suballoc::d eallocate

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

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

Параметры

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

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

См. также

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