注:end成员负责返回指向容器(或string对象)”尾元素的下一位置”的迭代器,也就是说,该迭代器指示的是容器的一个本不存在的“尾后”元素。这样的迭代器没什么实际含义,仅是个标记而已,表示我们已经处理完了容器中所有的元素。end成员返回的迭代器常被称作尾后迭代器或者简称为尾迭代器。特殊情况下如果容器为空,则begin和end返回的是同一个迭代器。
迭代器运算符:
合理地使用auto关键字:一般来说,我们不清楚(不在意)迭代器准确的类型到底是什么。使用auto来定义迭代器可以使代码更简洁易懂。
迭代器这个名词有三种不同的含义:可能是迭代器概念本身,也可能是指容器定义的迭代器类型,还可能是指某个迭代器对象。
关于begin和end运算符:
谨记:但凡是使用了迭代器的循环体,都不要向迭代器所属的容器添加元素。
只要两个迭代器指向的是同一个容器中的元素或者尾元素的下一位置,就能将其相减,所得结果是两个迭代器的距离。所谓距离指的是右侧的迭代器向前移动多少位置就能追上左侧的迭代器,其类型是名为difference_type的带符号整数。