Почему в самом начале, где написана возможная реализация этого метода, c.end() сохраняется в last? Разве при erase не происходит инвалидация итераторов?
В стандарте не смотрел, но всегда рассчитывал, что при уменьшении контейнера рехэша не будет. cppreference вот тоже так говорит: "References and iterators to the erased elements are invalidated. Other iterators and references are not invalidated."
В стандарте не смотрел, но всегда рассчитывал, что при уменьшении контейнера рехэша не будет. cppreference вот тоже так говорит: "References and iterators to the erased elements are invalidated. Other iterators and references are not invalidated."