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