Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Задает распределитель блоков, который выделяет и освобождает блоки памяти одного размера.
Синтаксис
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
Указатель на первый объект, который необходимо освободить из хранилища.
число
Количество объектов для освобождения из хранилища.