What is the past-the-end iterator in STL C++?

后端 未结 5 1797
情书的邮戳
情书的邮戳 2020-11-29 01:56

Any one could explain me what is the meaning of past-the-end. Why we call end() function past-the-end?

5条回答
  •  情深已故
    2020-11-29 02:35

    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.

    enter image description here

    The advantage of an half open range is:

    1. It avoids special handling for empty ranges. For empty ranges, begin() is equal to end() .

    2. It makes the end criterion simple for loops that iterate over the elements: The loops simply continue as long as end() is not reached

提交回复
热议问题