Несоответствие связано с использованием. vector
- последовательность, имеющая порядок элементов. Хотя верно, что элементы в map
также упорядочены согласно некоторому критерию сравнения, это упорядочение не очевидно из структуры. Не существует эффективного способа перехода от одного элемента к другому (эффективный = постоянное время). На самом деле, перебирать карту довольно дорого; создание итератора или самого итератора предполагает обход полного дерева. Это невозможно сделать в O ( n ), если только не используется стек, и в этом случае требуемое пространство больше не является постоянным.
В общем, просто нет дешевого способа вернуть «следующий» элемент после стирания. Для последовательностей есть способ.
Кроме того, Роб прав. Для карты нет необходимости возвращать итератор.