Для карты да - практически ничего, кроме удаления упомянутого объекта, делает недействительным итератор в карте.
Для unordered_map на практике, возможно, да для этого конкретного случая - итератор end
часто немного отличается от других итераторов, поэтому он может не содержать никакого реального адреса или чего-либо подобного - это просто специальный страж значение, которое будут сравнивать другие итераторы после итерации по всему контейнеру.
Это, правда, не гарантировано. В частности, ваши вставки могут вызвать перефразирование, [Правка: здесь я более или менее предполагаю, что ваши две вставки предназначены в качестве заполнителя для некоторого произвольного числа вставок. Вы можете выяснить, происходит ли повторное хеширование для определенного коэффициента загрузки, количества вставок и т. Д., Но вы, как правило, этого не хотите - в зависимости от того, что это приводит к хрупкому коду], а перефразировка делает недействительными итераторы (§23.2.5 / 8). Хотя (как упомянуто выше) итератор, возвращаемый end()
, часто является «специальным», стандарт не требует этого, поэтому после вставок то, что вы ранее получили из end
, может быть недействительным, поэтому практически ничего не требуется для это (включая сравнение, равное чему-либо, в частности).