Поделиться через


Распределители

Распределителей используются библиотекой стандартных шаблонов для обработки выделение и освобождение элементов хранятся в контейнерах. Все контейнеров 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.

См. также

Ссылки

Библиотека стандартных шаблонов