Этот класс является расширенным STL-совместимым, который предлагает расширенный механизм распределения (расширение на месте, сокращение, выделение лопастей ...)
Этот распределитель - обертка вокруг модифицированного DLmalloc. Если версия 1, то распределитель представляет собой распределитель, соответствующий STL. Если версия 2, распределитель предлагает расширенные возможности расширения и разрыва распределения.
Allocation Disable Маска работает только в том случае, если Версия 2 и она может быть инклюзивной ИЛИ типов распределения, которые пользователь хочет отключить.
Конструктор от связанного распределителя. Никогда не бросать
allocator public member functions
<
pointerallocate(size_typecount,constvoid*hint=0);
>
Выделяет память для массива счетных элементов. Оригинальное название: Bad_alloc Если памяти недостаточно Если версия 2, эта выделенная память может быть размещена только с помощью deallocate() или (для версии == 2) deallocate_many().
<
voiddeallocate(pointerptr,size_type)noexcept;
>
Выделяет ранее выделенную память. Никогда не бросайте
<
size_typemax_size()constnoexcept;
>
Возвращает максимальное количество элементов, которые можно было бы выделить. Никогда не бросайте
Продвинутая функция, которая предлагает расширение на месте, уменьшается в соответствии с новыми возможностями распределения. Память, выделенная с этой функцией, может быть размещена только с помощью deallocate() или deallocate_many(). Эта функция доступна только с версией == 2
<
size_typesize(pointerp)constnoexcept;
>
Возвращает максимальное количество объектов, которые может удерживать ранее выделенная память, указанная p. Память не должна быть выделена с выделением_one или выделением_individual. Эта функция доступна только с версией == 2
<
pointerallocate_one();
>
Выделяют только один объект. Память, выделенная с этой функцией, должна быть размещена только с помощью deallocate_one(). Бросает bad_alloc, если памяти недостаточно Эта функция доступна только с версией == 2
Выделяет множество элементов размера == 1. Элементы должны быть индивидуально размещены с помощью deallocate_one() Эта функция доступна только с версией == 2
<
voiddeallocate_one(pointerp)noexcept;
>
Выделяет память, ранее выделенную с выделением_one(). Вы никогда не должны использовать deallocate_one для обработки памяти, выделенной с другими функциями, отличными от allocate_one() или allocate_individual.
Выделяют множество элементов размера elem_size. Элементы должны быть индивидуально размещены с помощью deallocate() Эта функция доступна только с версией == 2
Выделяет элементы n_элементов, каждый из которых имеет размер elem_sizes[i] Элементы должны быть индивидуально размещены с помощью deallocate() Эта функция доступна только с версией == 2
Статья Class template allocator раздела The Boost C++ Libraries BoostBook Documentation Subset Boost.Container Header Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.