A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/cpp/stdnext-in-cpp/ below:

std::next in C++ - GeeksforGeeks

std::next in C++

Last Updated : 02 Aug, 2017

std::next

returns an iterator pointing to the element after being advanced by certain no. of positions. It is defined inside the header file

. It

does not modify its arguments

and returns a copy of the argument advanced by the specified amount. If it is a

random-access iterator

, the function uses just once operator + or operator - for advancing. Otherwise, the function uses repeatedly the increase or decrease operator (operator ++ or operator --) on the copied iterator until n elements have been advanced.

Syntax:
ForwardIterator next (ForwardIterator it,
       typename iterator_traits::difference_type n = 1);
it: Iterator to the base position.
difference_type: It is the numerical type that represents 
distances between iterators of the ForwardIterator type.
n: Total no. of positions by which the
iterator has to be advanced. In the syntax, n is assigned
a default value 1 so it will atleast advance by 1 position.

Returns: It returns an iterator to the element 
n positions away from it.

CPP
// C++ program to demonstrate std::next
#include <iostream>
#include <iterator>
#include <deque>
#include <algorithm>
using namespace std;
int main()
{
    // Declaring first container
    deque<int> v1 = { 1, 2, 3, 4, 5, 6, 7 };

    // Declaring another container
    deque<int> v2 = { 8, 9, 10 };

    // Declaring an iterator
    deque<int>::iterator i1;

    // i1 points to 1
    i1 = v1.begin();

    // Declaring another iterator to store return
    // value and using std::next
    deque<int>::iterator i2;
    i2 = std::next(i1, 4);

    // Using std::copy
    std::copy(i1, i2, std::back_inserter(v2));
    // Remember, i1 stills points to 1
    // and i2 points to 5
    // v2 now contains 8 9 10 1 2 3 4

    // Displaying v1 and v2
    cout << "v1 = ";

    int i;
    for (i = 0; i < 7; ++i) {
        cout << v1[i] << " ";
    }

    cout << "\nv2 = ";
    for (i = 0; i < 7; ++i) {
        cout << v2[i] << " ";
    }

    return 0;
}

Output:

v1 = 1 2 3 4 5 6 7
v2 = 8 9 10 1 2 3 4

How can it be helpful ?



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4