allocator();

 ~allocator();

 pointer address(reference x);

 const_pointer const_address(const_reference x);

 pointer allocate(size_type n);

 void deallocate(pointer p);

 size_type init_page_size();

 size_type max_size();

};

class allocator‹void› {

public:

 typedef void* pointer;

 allocator();

 ~allocator();

};

Предполагается, что в дополнение к allocator поставщики библиотеки обеспечивают распределители для всех моделей памяти.

Контейнеры

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

В следующей таблице мы полагаем, что X - контейнерный класс, содержащий объекты типа T, a и b - значения X, u - идентификатор, r - значение X&.

Таблица 8. Требования контейнеров

выражение возвращаемый тип семантика исполнения утверждение/примечание состояние до/после сложность
X::value_type Т - время компиляции
X::reference - - - время компиляции
X::const_reference - - - время компиляции
X::pointer тип указателя, указывающий на X::reference - указатель на T в модели памяти, используемой контейнером время компиляции
X::iterator тип итератора, указывающий на X::reference - итератор любой категории, кроме итератора вывода. время компиляции
X::const_iterator тип итератора, указывающий на X::const_reference - постоянный итератор любой категории, кроме итератора вывода. время компиляции
X::difference_type знаковый целочисленный тип - идентичен типу расстояния X::iterator и X::const_iterator время компиляции
X::size_type беззнаковый целочисленный тип size_type может представлять любое неотрицательное значение difference_type время компиляции
X u; -
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату