template<class InputIterator>
typename iterator_traits<InputIterator>::difference_type
distance (InputIterator first, InputIterator last);
Return distance between iterators
Calculates the number of elements between first and last.
1 // advance example 2 #include <iostream> // std::cout 3 #include <iterator> // std::distance 4 #include <list> // std::list 5 6 int main () { 7 std::list<int> mylist; 8 for (int i=0; i<10; i++) mylist.push_back (i*10); 9 10 std::list<int>::iterator first = mylist.begin(); 11 std::list<int>::iterator last = mylist.end(); 12 13 std::cout << "The distance is: " << std::distance(first,last) << '\n'; 14 15 return 0; 16 }
template <class InputIterator, class Distance>
void advance (InputIterator& it, Distance n);
Advance iterator
Advances the iterator it by n element positions.
Return value
none
1 // advance example 2 #include <iostream> // std::cout 3 #include <iterator> // std::advance 4 #include <list> // std::list 5 6 int main () { 7 std::list<int> mylist; 8 for (int i=0; i<10; i++) mylist.push_back (i*10); 9 10 std::list<int>::iterator it = mylist.begin(); 11 12 std::advance (it,5); 13 14 std::cout << "The sixth element in mylist is: " << *it << '\n'; 15 16 return 0; 17 }
Output:
The sixth element in mylist is: 50 |
template <class ForwardIterator>
ForwardIterator next (ForwardIterator it,
typename iterator_traits<ForwardIterator>::difference_type n = 1);
Get iterator to next element
Returns an iterator pointing to the element that it would be pointing to if advanced n positions.
1 // next example 2 #include <iostream> // std::cout 3 #include <iterator> // std::next 4 #include <list> // std::list 5 #include <algorithm> // std::for_each 6 7 int main () { 8 std::list<int> mylist; 9 for (int i=0; i<10; i++) mylist.push_back (i*10); 10 11 std::cout << "mylist:"; 12 std::for_each (mylist.begin(), 13 std::next(mylist.begin(),5), 14 [](int x) {std::cout << ' ' << x;} ); 15 16 std::cout << '\n'; 17 18 return 0; 19 }
Output:
mylist: 0 10 20 30 40 |
template <class BidirectionalIterator> BidirectionalIterator prev (BidirectionalIterator it, typename iterator_traits<BidirectionalIterator>::difference_type n = 1);
Get iterator to previous element
Returns an iterator pointing to the element that it would be pointing to if advanced -n
positions.
Return value
An iterator to the element n positions before it.
1 // prev example 2 #include <iostream> // std::cout 3 #include <iterator> // std::next 4 #include <list> // std::list 5 #include <algorithm> // std::for_each 6 7 int main () { 8 std::list<int> mylist; 9 for (int i=0; i<10; i++) mylist.push_back (i*10); 10 11 std::cout << "The last element is " << *std::prev(mylist.end()) << '\n'; 12 13 return 0; 14 }
Output:
The last element is 90 |