На этом шаге мы приведем общие сведения об итераторах вставки.
Стандартная библиотека C++ поддерживает три разновидности итераторов вставки: конечные, начальные и общие. Они различаются в зависимости от позиции, в которой вставляется новое значение, и вызывают разные функции своего контейнера. Отсюда следует, что итератор вставки всегда должен быть инициализирован своим контейнером.
Во всех разновидностях итераторов вставки определены вспомогательные фунта;ии для создарния и инициализации. В таблице 1 перечислены разновидности итераторов вставки и их свойства.
Название | Класс | Вызываемая функция | Создание |
---|---|---|---|
Конечный итератор вставки | back_insert_iterator | push_back(value) | back_inserter(cont) |
Начальный итератор вставки | front_insert_iterator | push_front (value) | front_inserter(cont) |
Общий итератор вставки | insert_iterator | insert(pos,value) | inserter(cont,pos) |
Естественно, контейнер должен поддерживать функции, вызываемые итератором вставки; в противном случае использовать соответствующий итератор не удастся. Из-за этого конечные итераторы вставки поддерживаются только для векторов, деков, списков и строк, а начальные итераторы вставки - только для деков и списков. Дальше итераторы вставки рассматриваются более подробно.
На следующем шаге мы рассмотрим конечные итераторы вставки.