5.5.1  前进advance()函数

5.5.1 前进 advance()函数

迭代器辅助advance()函数可使相关的迭代器前进和后退一个或多个元素,增加的速度由参数决定。其原型为:

978-7-111-51399-5-Chapter05-28.jpg

advance()函数的功能:实现将输入型迭代器_Init前进或后退_Off个元素。对于参数_Off,前进为正数,后退为负数。只有当迭代器类型为双向型迭代器和随机访问型迭代器时,参数_Off为负值,表示后退。原型中的Distance是模板型别,通常为整数型别。advance()函数在移动迭代器指针时,不会检查是否超过序列的end()。因此可能会导致迭代器已到达尾部(首部),而还会继续增加迭代器的数值。

advance()函数也有其局限性:

1)只有随机访问型迭代器才能方便地移动迭代器的位置;非随机访问型迭代器需要使用advance()函数移动迭代器指向的位置,其执行性能并不佳。

2)advance()函数没有返回值。

但这些并不会掩盖advance()函数的优点,正是advance()使迭代器的移动变得容易了。

例5-6

978-7-111-51399-5-Chapter05-29.jpg

例5-6的执行效果如图5-7所示。

978-7-111-51399-5-Chapter05-30.jpg

图5-7 例5-6的执行效果