Здравствуйте, B0FEE664, Вы писали:
BFE>Изменение по месту я понимаю так:
BFE>BFE>*it = 'a';
BFE>*it = 'b';
BFE>
BFE>результат: "...b...", а не "...ab...".
К результату "ab" могут привести, разве что, такие специальные виды итераторов, как back_insert_iterator и ostream_iterator. Но эти операторы — это особый случай — у них операция инкремента, хоть и существует формально, но не имеет никакого эффекта. У этих итераторов операции *it = 'a' и *it++ = 'a' имеют один и тот же результат.
В самом же общем случае итератор является обобщением указателя и для того, чтобы получить последовательность ("ab"), итератор нужно инкрементить. Что и делают алгоритмы тип std::copy, std::fill, etc. А без этого инкремента это и будет многократное изменение одного и того же элемента (изменение по месту, как ты это называешь).