Reference
C Library
IOstream Library
Strings library
STL Containers
STL Algorithms
Miscellaneous
Miscellaneous
complex
exception
functional
iterator
limits
locale
memory
new
numeric
stdexcept
typeinfo
utility
valarray
iterator
advance
back_inserter
distance
front_inserter
inserter
iterator
iterator_traits
iterator categories:
BidirectionalIterator
ForwardIterator
InputIterator
OutputIterator
RandomAccessIterator
predefined iterators:
back_insert_iterator
front_insert_iterator
insert_iterator
istreambuf_iterator
istream_iterator
ostreambuf_iterator
ostream_iterator
reverse_iterator


advance

function template
<iterator>
template <class InputIterator, class Distance>
  void advance (InputIterator& i, Distance n);

Advance iterator

Advances the iterator i by n elements.

If i is a Random Access Iterator, the function uses once operator+ or operator-, otherwise, the function uses repeatedly the increase or decrease operator (operator++ or operator--) until n elements have been advanced.

Parameters

i
Iterator to be advanced.
n
Number of elements to advance.
This can only be negative for random access and bidirectional iterators.
Distance is any numerical type able to represent distances between iterators of this type.

Return value

none

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// advance example
#include <iostream>
#include <iterator>
#include <list>
using namespace std;
int main () {
  list<int> mylist;
  for (int i=0; i<10; i++) mylist.push_back (i*10);
  list<int>::iterator it = mylist.begin();
  advance (it,5);
  cout << "The sixth element in mylist is: " << *it << endl;
  return 0;
}


Output

The sixth element in mylist is: 50

Complexity

Constant for random access iterators.
Linear on n for other categories of iterators.

See also