Шаг 172.
Библиотека STL. Контейнеры STL. Операции над отображениями и мультиотображениями. Операции создания, копирования и уничтожения

    На этом шаге мы рассмотрим конструкторы и деструктор этих контейнеров.

    В таблице 1 представлены конструкторы и деструктор отображений и мультиотображений..

Таблица 1. Конструкторы и деструктор отображений и мультиотображений.
Операция Описание
map с Создает пустое отображение или мультиотображение, не содержащее ни одного элемента
map c(op) Создает пустое отображение или мультиотображение, использующее критерий сортировки ор
map с1(c2) Создает копию другого отображения или мультиотображения того же типа (с копированием всех элементов)
map c(beg,end) Создает отображение или мультиотображение, инициализированное элементами интервала [beg,end)
map c(beg,end,op) Создает отображение или мультиотображение с критерием сортировки ор, инициализированное элементами интервала [beg,end)
c.~map() Уничтожает все элементы и освобождает память

    В таблице символами "map" обозначена одна из следующих конструкций:

    Существуют два варианта определения критерия сортировки.

    Полное имя типа для контейнера получается излишне сложным и громоздким, поэтому для него рекомендуется определить псевдоним (то же самое полезно сделать и для определений итераторов):

  typedef std::map<std::string,float,std::greater<string> > StringFloatMap;
  StringFloatMap coll;

    Конструктор, которому передается начало и конец интервала, может применяться для инициализации контейнера элементами контейнеров, относящихся к другим типам (от массива до стандартного входного потока данных). За подробностями обращайтесь к 124 шагу. Однако в данном случае элементы представляют собой пары "ключ/значение", поэтому необходимо проследить за тем, чтобы элементы исходного интервала относились к типу раir<ключ,значение> или могли быть преобразованы к нему.

    На следующем шаге мы рассмотрим немодифицирующие операции над отображениями и мультиотображениями.




Предыдущий шаг Содержание Следующий шаг