Класс allocator
Класс шаблона описывает объект, который управляет выделением и освобождением памяти для массивов объектов типа Тип. Объект класса allocator объект распределителя по умолчанию, определенный в конструкторах для нескольких шаблонных классов контейнера в стандартной библиотеке C++.
template <class Type>
class allocator
Параметры
- Тип
Тип объекта, для которого выбора или отмена выделения.
Заметки
Все контейнеры стандартной библиотеки шаблонов имеют параметр шаблона, по умолчанию используется значение allocator. Предоставляет allocator класса шаблона несколько определений типов, а пешеходны. Они едва ли отображается определение стоимости. Но другой класс с теми же элементами может выбрать более интересные альтернативные. Создание контейнера с объектом распределителя подобного класса предоставляет один элемент управления над выделения и освобождения элементов управляемых этим контейнером.
Например, объект распределителя может выделить хранилище в частной куче. Он может выделить хранилище на далекой куче, требующее от нештатные указатели получение выбранных объектов. Он также может определить, с помощью определения типа его доставки, чтобы элементы были осуществляется через специальные объекты доступа, управляющих общей памяти, или выполняют автоматическую сборку мусора. Следовательно, класс, который выделяет хранилище с помощью объекта распределителя должен использовать эти типы для объявления указателя и ссылочные объекты, как контейнеры в стандартной библиотеке C++.
При наследовании от класса распределителя необходимо предоставить структуру rebind, которой typedef _Other ссылается на только что производный класс.
Таким образом, распределитель определяет следующие типы:
указатель ведет себя как указатель на Тип.
const_pointer ведет себя как указатель константного выражения в Тип.
reference ведет себя как ссылка на Тип.
const_reference const ведет себя так же, как ссылка на Тип.
В Тип, определяет форму, указатели и ссылки должны принимать выбранных элементов. (allocator::pointer не обязательно совпадают с путями * Тип для всех объектов распределителя, даже если он имеет это существенным определение класса allocator).
Члены
конструкторов;
Конструкторы, используемые для создания объектов allocator. |
Определения типов
Тип, предоставляющий постоянно указатель тип объекта управляемые распределителем. |
|
Тип, предоставляющий постоянно ссылку на тип объекта управляемые распределителем. |
|
Подписанный целочисленный тип, который может представлять разницу между значениями указателей на тип объекта управляемые распределителем. |
|
Тип, который содержит указатель тип объекта управляемые распределителем. |
|
Тип, который предоставляет ссылку на тип объекта управляемые распределителем. |
|
Unsigned целочисленный тип, который может представлять любой длину последовательности, объект класса шаблона allocator может выбрать. |
|
Управляемый тип, распределителем. |
Функции-члены
Находит адрес объекта, значение которого задается. |
|
Выделяет блок памяти достаточно велик для хранения по крайней мере некоторые заданное число элементов. |
|
Создает определенный тип объекта по указанному адресу, инициализируется с заданным значением. |
|
Освобождает заданное число объектов из начала хранилища в указанной позиции. |
|
Вызывает деструктор объектов без освобождения памяти, в котором объект хранились. |
|
Возвращает количество элементов типа Type, которые могут быть выбраны объектом класса allocator до свободной памяти будет использоваться вверх. |
|
Структура, которая позволяет распределитель объектов для одного типа выделить хранилище для объектов другого типа. |
Операторы
Присвоить один объект allocator другому объекту allocator. |
Требования
Header: <memory>
Пространство имен: std
См. также
Ссылки
Потокобезопасность в стандартной библиотеке C++