Аллокатор узла STL, который использует модифицированный DLMalloc в качестве источника памяти.
Этот распределитель узлов делит отдельное хранилище между всеми экземплярами adaptive_pool с равным размером (T).
NodesPerBlock - это количество узлов, выделенных одновременно, когда у распределителя заканчиваются узлы. MaxFreeBlocks - это максимальное количество полностью свободных блоков, которые будет поддерживать бассейн адаптивных узлов. Остальные свободные блоки будут переданы менеджеру памяти.
OverheadPercent - это (приблизительный) максимальный размер накладных расходов (1-20%) распределителя: (память, используемая для узлов / общая память, выделенная из распределителя памяти)
adaptive_pool
public
types
typedef unsignedintallocation_type;
Если версия 1, то распределитель представляет собой распределитель, соответствующий STL. Если версия 2, распределитель предлагает расширенные возможности расширения и разрыва распределения.
Возвращает максимальное количество объектов, которые может удерживать ранее выделенная память, заданная p.
pointerallocate_one();
Выделяет только один объект. Память, выделенная с этой функцией, должна быть размещена только с помощью deallocate_one(). Бросает bad_alloc, если памяти недостаточно
Выделяет множество элементов размера == 1. Элементы должны быть индивидуально размещены с помощью deallocate_one()
voiddeallocate_one(pointer p)за исключением;
Выделяет память, ранее выделенную с помощью allocate_one(). Вы никогда не должны использовать deallocate_one для обработки памяти, выделенной с другими функциями, отличными от allocate_one(). Никогда не бросайте 19
Статья Class template adaptive_pool раздела The Boost C++ Libraries BoostBook Documentation Subset Boost.Container Header Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.