http://www.cplusplus.com/reference/string/string/string/ You are using the 7th constructor.
Since it's a template the constructor can take many types as arguments, but every time it wants exactly two arguments of the same type.
So you can have
1 2
string(const_iterator first, const_iterator last); // Both const_iterator
string(iterator first, iterator last); // Both iterator
But not a mix of the two, because the contructor wants two of the same type.
begin() returns an iterator, `where` is a const_iterator