VOOZH about

URL: https://www.geeksforgeeks.org/cpp/stdnext-in-cpp/

⇱ std::next in C++ - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

std::next in C++

Last Updated : 2 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.

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

How can it be helpful ?

  • Advancing iterator in Lists: Since, lists support bidirectional iterators, which can be incremented only by using ++ and - - operator. So, if we want to advance the iterator by more than one position, then using std::next can be extremely useful.
Output:
v1 = 1 2 3 7 8 9
v2 = 4 5 6 1 2 3 
Explanation: Here, just look how if we want copy only a selected portion of the list, then we can make use of std::next, as otherwise we cannot use any +=, -= operators with bidirectional iterators supported by lists. So, we used std::next and directly advanced the iterator by three positions.
Comment
Article Tags: