Skip to content
Related Articles

Related Articles

std::advance in C++

Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 26 Apr, 2022
Improve Article
Save Article

std::advance advances the iterator ‘it’ by n element positions. Syntax :

template 
    void advance (InputIterator& it, Distance n);

it : Iterator to be advanced
n : Number of element positions to advance.
This shall only be negative for random-access and bidirectional iterators.

Return type :
None.

Motivation problem : A vector container is given. Task is to print alternate elements. Examples :

Input : 10 40 20 50 80 70
Output : 10 20 80

CPP




// C++ program to illustrate
// using std::advance
#include <bits/stdc++.h>
 
// Driver code
int main()
{
    // Vector container
    std::vector<int> vec;
 
    // Initialising vector
    for (int i = 0; i < 10; i++)
        vec.push_back(i * 10);
 
    // Printing the vector elements
    for (int i = 0; i < 10; i++) {
        std::cout << vec[i] << " ";
    }
 
    std::cout << std::endl;
 
    // Declaring the vector iterator
    std::vector<int>::iterator it = vec.begin();
 
    // Printing alternate elements
    while (it < vec.end()) {
        std::cout << *it << " ";
        std::advance(it, 2);
    }
}

Output:

0 10 20 30 40 50 60 70 80 90 
0 20 40 60 80

C++




#include <iostream>
#include<bits/stdc++.h>
using namespace std;
 
int main() {
 
    vector<int >vect(10);
  //insert the ten element in the vector
    for(int i=1;i<=10;i++)
    {
      vect[i-1]=i;
    }
    //iterator pointing to first element.
    vector<int >::iterator it=vect.begin();
   
     for(int i=1;i<=10;i++)
     {
       cout<<*it<<" ";
       it++;
        
     }
   vector<int >::iterator it1=vect.begin();
  //here it is pointing to the 3rd element.  
    advance(it1,2);//here second argument is the index base.
     
  cout<<endl;
   
  cout<<*it1;
  //print it1 pointing to the 3rd position.
    return 0;
}
/* This code is contributed by Sameer Hake/*

Output

1 2 3 4 5 6 7 8 9 10 
3

This article is contributed by Rohit Thapliyal , Sameer Hake. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!