Да, некоторые операции инвалидируют итераторы unordered_map.
insert, emplace, try_emplace, insert_or_assign) может инвалидировать все итераторы, если она приводит к перехешированию контейнера (увеличению количества корзин и перераспределению элементов). Если перехеширования не происходит, итераторы остаются действительными.erase) инвалидирует итератор, указывающий на удаленный элемент, и может инвалидировать другие итераторы в той же корзине, если внутренняя организация корзины меняется. Итераторы на элементы в других корзинах остаются действительными.clear(): Инвалидирует все итераторы.rehash() и reserve(): Явно вызывают перехеширование и инвалидируют все итераторы.Пример, демонстрирующий инвалидацию при перехешировании после вставки:
cpp
Следует всегда получать новый итератор после операций, которые могут его инвалидировать, чтобы избежать неопределенного поведения.