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


Класс allocator

Класс шаблона описывает объект, который управляет выделением и освобождением памяти для массивов объектов типа Тип. Объект класса allocator объект распределителя по умолчанию, определенный в конструкторах для нескольких шаблонных классов контейнера в стандартной библиотеке C++.

template <class Type> 
class allocator

Параметры

  • Тип
    Тип объекта, для которого выбора или отмена выделения.

Заметки

Все контейнеры стандартной библиотеки шаблонов имеют параметр шаблона, по умолчанию используется значение allocator. Предоставляет allocator класса шаблона несколько определений типов, а пешеходны. Они едва ли отображается определение стоимости. Но другой класс с теми же элементами может выбрать более интересные альтернативные. Создание контейнера с объектом распределителя подобного класса предоставляет один элемент управления над выделения и освобождения элементов управляемых этим контейнером.

Например, объект распределителя может выделить хранилище в частной куче. Он может выделить хранилище на далекой куче, требующее от нештатные указатели получение выбранных объектов. Он также может определить, с помощью определения типа его доставки, чтобы элементы были осуществляется через специальные объекты доступа, управляющих общей памяти, или выполняют автоматическую сборку мусора. Следовательно, класс, который выделяет хранилище с помощью объекта распределителя должен использовать эти типы для объявления указателя и ссылочные объекты, как контейнеры в стандартной библиотеке C++.

При наследовании от класса распределителя необходимо предоставить структуру rebind, которой typedef _Other ссылается на только что производный класс.

Таким образом, распределитель определяет следующие типы:

  • указатель ведет себя как указатель на Тип.

  • const_pointer ведет себя как указатель константного выражения в Тип.

  • reference ведет себя как ссылка на Тип.

  • const_reference const ведет себя так же, как ссылка на Тип.

В Тип, определяет форму, указатели и ссылки должны принимать выбранных элементов. (allocator::pointer не обязательно совпадают с путями * Тип для всех объектов распределителя, даже если он имеет это существенным определение класса allocator).

Члены

конструкторов;

allocator

Конструкторы, используемые для создания объектов allocator.

Определения типов

const_pointer

Тип, предоставляющий постоянно указатель тип объекта управляемые распределителем.

const_reference

Тип, предоставляющий постоянно ссылку на тип объекта управляемые распределителем.

difference_type

Подписанный целочисленный тип, который может представлять разницу между значениями указателей на тип объекта управляемые распределителем.

указатель

Тип, который содержит указатель тип объекта управляемые распределителем.

Ссылка

Тип, который предоставляет ссылку на тип объекта управляемые распределителем.

size_type

Unsigned целочисленный тип, который может представлять любой длину последовательности, объект класса шаблона allocator может выбрать.

value_type

Управляемый тип, распределителем.

Функции-члены

address

Находит адрес объекта, значение которого задается.

выделите

Выделяет блок памяти достаточно велик для хранения по крайней мере некоторые заданное число элементов.

конструкция

Создает определенный тип объекта по указанному адресу, инициализируется с заданным значением.

отменить

Освобождает заданное число объектов из начала хранилища в указанной позиции.

destroy

Вызывает деструктор объектов без освобождения памяти, в котором объект хранились.

max_size

Возвращает количество элементов типа Type, которые могут быть выбраны объектом класса allocator до свободной памяти будет использоваться вверх.

rebind

Структура, которая позволяет распределитель объектов для одного типа выделить хранилище для объектов другого типа.

Операторы

operator=

Присвоить один объект allocator другому объекту allocator.

Требования

Header: <memory>

Пространство имен: std

См. также

Ссылки

Потокобезопасность в стандартной библиотеке C++

Другие ресурсы

члены механизм распределения

Члены <память>