I have long assumed that for any empty std::vector V, V.begin() == V.end(). Yet I see nothing in the C++ specification that states this to
std::vector
V.begin() == V.end()
Yes, that is true. Here is the proof. And, of course, std::distance(a.begin(), a.end()) == 0 for an empty vector.
std::distance(a.begin(), a.end()) == 0