Строка и замена

#c #c 11

#c #c 11

Вопрос:

здесь немного кода:
itr2=s.replace(itr2-5, itr2 1, newVal.begin(), newVal.end()).begin();

здесь begin() возвращает итератор для строки, в моем случае это будет строка не из начала исходной строки ‘s’. Интересно, после replace() я получаю ссылку на not of begin или ссылку на копию.
И мне интересно, возвращает ли s.replace(…) является частью s?

Комментарии:

1. Каждая строка имеет свое собственное содержимое. У вас не может быть ссылок между символами строк.

2. Вы имеете в виду, что это будет одна и та же строка?

3. Нет, каждая строка отличается.

4. Это копирование символов. Символы не могут быть ссылками друг на друга.

5. Итак, s.replace(…) не является частью s?

Ответ №1:

s.replace() возвращает ссылку обратно на s. Ваше утверждение эквивалентно

 s.replace(itr2-5, itr2 1, newVal.begin(), newVal.end());
itr2 = s.begin();
 

Ничего подлого не происходит.