Any one could explain me what is the meaning of past-the-end. Why we call end() function past-the-end?
past-the-end
end()
Literally, because it points one past the end of the array.
It is used because that element is empty, and can be iterated to, but not dereferenced.
int arry[] = {1, 2, 3, 4, /* end */ }; ^^^^^^^ std::end(arry) would point here.