Is it allowed to increment an iterator variable it that already is at end(), i.e. auto it = v.end()?
it
end()
auto it = v.end()
No the behaviour is undefined. You are allowed to set an iterator to end(), but you must not increment it or dereference it.
You are allowed to decrement it so long as the backing container is not empty.