Я давно предполагал, что для любого пустого std::vector V V.begin() == V.end(). Тем не менее, я не вижу в спецификации C++ ничего, что бы утверждало, что это всегда верно. Это обязательно так или просто так происходит в большинстве реализаций?
Подробнее здесь: https://stackoverflow.com/questions/177 ... pty-vector