Проблема с выражениями:
_string->begin()
_string->end()
Думая о a->b
, как и (*a).b
, мы можем видеть, что они:
(*_string).begin()
(*_string).end()
*x
совпадает с x[0]
, поэтому мы имеем:
_string[0].begin()
_string[0].end()
Поскольку _string[0]
содержит "Hi"
, вы можете понять, почему итерация состоит всего из двух шагов.