Site icon Learn C++

Helpers for Generic C++ Code Iterating Over Sequences

The iterator library that is part of the C++ Standard Library provides the following helpers for writing generic code:

[crayon-6a332e9b26217076748628/]

All the functions above are defined in the header. It’s always preferable to use these generic functions when writing the generic code instead of using equivalent member functions of the containers.

Functions from (1) to (8) are defined for built-in arrays and for every type that provides members begin() and end(). Note, that std::cbegin() requires the definition of the constant version of member function c.begin().

Functions for (9) to (12): std::prev() and std::next() are generic functions to increment or decrement the iterator by the specified number of hops (by default, 1), function std::distance() is a generic function to calculate the number of hops between the specified pair of iterators and function std::advance() is a generic equivalent of the operator +=.

Please note, if either the argument of std::next() and std::advance() is negative or the argument of std::prev() is positive then the specified iterator must be bidirectional iterator (see Categories of Iterators in C++).

Exit mobile version