Распределители
Распределителей используются библиотекой стандартных шаблонов для обработки выделение и освобождение элементов хранятся в контейнерах. Все контейнеров STL имеют аргумент шаблона типа allocator<Type>, где Type представляет тип элемента-контейнера. Например, класс vector объявлено следующим образом:
template <
class Type,
class Allocator = allocator<Type>
>
class vector
Библиотека стандартных шаблонов предоставляет реализацию по умолчанию для распределителя. В большинстве случаев этот распределитель по умолчанию должен быть достаточно. Дополнительные сведения о распределителе по умолчанию см. в разделе Класс allocator.
Собственного распределитель
Распределитель по умолчанию использует new и delete для выделения и освобождения памяти. Если требуется использовать другой метод выделения памяти, такие как использование общей памяти, затем необходимо создать собственный распределитель.
Любой распределитель, используемый с контейнерами STL должен реализовывать следующие определения типа:
const_pointer |
rebind |
const_reference |
reference |
difference_type |
size_type |
pointer |
value_type |
Кроме того, любой распределитель, используемый с контейнерами STL должен реализовать следующие методы:
Конструктор |
deallocate |
Конструктор копии |
destroy |
Деструктор |
max_size |
address |
operator== |
allocate |
operator!= |
construct |
Дополнительные сведения об этих определений типа и методах см. в разделе Класс allocator.