past-the-end iterator

begin()和end() 定义了一个半开区间 [ begin, end ), 因此叫做past-the-end。

这样设计的好处是:

1、避免了特殊处理空区间。当begin == end时,就是空区间。

  如果end指向的是最后一个元素,而不是最后一个元素的下一个位置。那么在空区间里,begin和end的指向就成了问题。

2、循环中只要未到达end(),循环继续,提供了一个循环结束的标准。

原文地址:https://www.cnblogs.com/jimobuwu/p/8688747.html