Объяснение
STL-алгоритмы отделяют операцию от контейнера через итераторы. Изменение контейнера может инвалидировать итераторы. ranges позволяют описывать преобразования, но представления часто ссылаются на исходные данные.
Задача для самостоятельного решения
Что произойдёт с итератором vector после push_back с перераспределением?
Показать разбор ответа
Он станет недействительным вместе со ссылками и указателями на прежнее хранилище. Получите итератор заново; reserve может сократить перераспределения, но не заменяет анализ времени жизни.