Главная arrow Программирование С++ arrow Основные требования управления контейнером

Основные требования управления контейнером

8 контейнере распределение памяти предпочтительней выполнять с помощью распределителя памяти, а не операциями new и delete. Следовательно, контейнер должен использовать функции-члены распределителя памяти для выделения и очистки памяти. Распределитель задается как параметр при создании контейнера. В языке С++ есть класс-распределитель, заданный по умолчанию и названный allocator, и соответствующий параметр контейнера может указывать на объект этого типа, что и делают все стандартные контейнеры. Все распределители памяти должны предоставлять те же функции-члены, что и тип allocator (но, конечно, их реализация может быть разной). Таким образом, контейнер может использовать любой распределитель памяти, описанный программистом. Функции распределителя памяти, используемые контейнером, разрабатываемым в данной главе, приведены в табл. 8.1
 
Каждый контейнер должен поддерживать следующие типы:
О iterator
О const_iterator
О reference
? const_reference
? value_type
? size_type
? difference_type
Реверсивный контейнер (поддерживающий двунаправленные итераторы) должен также предоставлять следующие типы:
? reverse_iterator
? cons t_reverse_.it era tor
Все контейнеры должны содержать заданный по умолчанию конструктор, создающий пустой контейнер, и копирующий конструктор. Необходимы также разные параметризованные конструкторы, точная форма которых различна у последовательных и ассоциативных контейнеров. Кроме того, требуется деструктор. Должны поддерживаться следующие функции-члены: begin О clear () empty О end()
erase () insert ()        max_size() rbeginO
rend() sized swap()
Функции rbeginO и rendo нужны только в реверсивных контейнерах. Некоторые функции имеют перегруженные представления (overloaded forms).
 
вип девушки киев , поиск.