The functions begin() and end() define a half open range([begin, end)), which means:
The range includes first element but excludes the last element. Hence, the name past the end.

The advantage of an half open range is:
-
It avoids special handling for empty ranges. For empty ranges,
begin()is equal to
end(). -
It makes the end criterion simple for loops that iterate over the elements: The loops simply
continue as long asend()is not reached