// iter/assoiter.hpp #include /* Шаблон итератора вставки для ассоциативных контейнеров */ template class asso_insert_iterator : public std::iterator { protected: Container& container; // Контейнер, в который вставляются элементы public: // Конструктор explicit asso_insert_iterator (Container& c) : container(c) { } // Оператор присваивания // - вставляет значение в контейнер asso_insert_iterator& operator= (const typename Container::value_type& value) { container.insert(value); return *this; } // Разыменование - пустая операция, которая возвращает сам итератор asso_insert_iterator& operator* () { return *this; } // Увеличение - пустая операция, которая возвращает сам итератор asso_insert_iterator& operator++ () { return *this; } asso_insert_iterator& operator++ (int) { return *this; } }; /* Вспомогательная функция для создания итератора вставки */ template inline asso_insert_iterator asso_inserter (Container& c) { return asso_insert_iterator(c); }