# Operations on Iterators in STL

Following are the operations that can be used with Iterators to perform various actions.

• distance
• next
• prev
• begin
• end

## `advance()` Operation

It will increment the iterator i by the value of the distance. If the value of distance is negative, then iterator will be decremented.

SYNTAX: `advance(iterator i ,int distance)`

``````
#include<iostream>
#include<vector>

int main()
{
vector<int>  v(10) ;    // create a vector of 10 0's
vector<int>::iterator i;  // defines an iterator i to the vector of integers

i = v.begin();
/* i now points to the beginning of the vector v */

/* i now points to the fifth element form the
beginning of the vector v */

/* i  now points to the fourth element from the
beginning of the vector */
}
``````

## `distance()` Operation

It will return the number of elements or we can say distance between the first and the last iterator.

SYNTAX: `distance(iterator first, iterator last)`

``````
#include<iostream>
#include<vector>

int main()
{
vector<int>  v(10) ;    // create a vector of 10 0's
vector<int>::iterator i, j;  // defines iterators i,j to the vector of integers

i = v.begin();
/* i now points to the beginning of the vector v */

j = v.end();
/* j now points to the end() of the vector v */

cout << distance(i,j) << endl;
/* prints 10 , */

}
``````

## `next()` Operation

It will return the nth iterator to i, i.e iterator pointing to the nth element from the element pointed by i.

SYNTAX: `next(iterator i ,int n)`

## `prev()` Operation

It will return the nth predecessor to i, i.e iterator pointing to the nth predecessor element from the element pointed by i.

SYNTAX: `prev(iterator i, int n)`

## `begin()` Operation

This method returns an iterator to the start of the given container.

SYNTAX: `begin()`

## `end()` Operation

This method returns an iterator to the end of the given container.

SYNTAX: `end()`