advance()
这个函数有多个重载,可以将迭代器的位置增加,也就是说它可以让迭代器一次前进或多个元素:
根据你使用的迭代器的类型,从而调用不同重载的advance1
函数,主要是它使用iterator trait.
因此能匹配.
注意:advance()没有返回值,operator+= 会返回新位置.
下面是一个使用例子:
next()和prev()
可令forward迭代器pos前进1或n个位置
如果是bidirectional和random-access迭代器,n可为负值,导致后退移动
其内部调用了advance函数
prev 导致bidirectional iterator迭代器pos后退1或n个位置
n可为负值,向前移动
内部调用了advance函数
举个例子:
auto pos = coll.begin();
while(pos!= coll.end() && std::next