Я столкнулся с этим вопросом сегодня и думал, что должен опубликовать его для ссылки сообщества и/или мнений.Может ли функция назначения для контейнеров переполняться?
Стандартный вектор контейнеров C++, deque, list и string предоставляет функцию-член assign
. Есть две версии; Меня в первую очередь интересует тот, кто принимает диапазон итераторов. Josuttis book немного двусмыслен с его описанием. С. 237 ...
Назначает все элементы диапазона [beg, end); это, заменяет все существующие элементы копиями элементов [beg, end).
Он не говорит, что произойдет, если размер контейнера-цессионария отличается от назначенного диапазона. Усекает? Автоматически ли оно расширяется? Это неопределенное поведение?
Просто набрал его. :) Чтобы сделать его более понятным, «присваивание» можно было бы назвать «переназначить», чтобы было ясно, что содержимое контейнера полностью переназначено. – GManNickG