<iterator>

<iterator>

advance·back_insert_iterator·back_inserter·bidirectional_iterator_tag·distance ·forward_iterator_tag·front_insert_iterator·front_inserter·input_iterator_tag ·insert_iterator·inserter·istream_iterator·istreambuf_iterator·iterator ·iterator_traits·operator!=·operator==·operator<·operator<=·operator> ·operator>=·operator+·operator-·ostream_iterator·ostreambuf_iterator ·output_iterator_tag·random_access_iterator_tag·reverse_bidirectional_iterator ·reverse_iterator

namespace std {
struct input_iterator_tag;
struct output_iterator_tag;
struct forward_iterator_tag;
struct bidirectional_iterator_tag;
struct random_access_iterator_tag;
//    TEMPLATE CLASSES
template<class C, class T, class Dist>
    struct iterator;
template<class It>
    struct iterator_traits;
template<class T>
    struct iterator_traits<T *>
template<class BidIt, class T, class Ref,
    class Ptr, class Dist>
    class reverse_bidirectional_iterator;
template<class RanIt, class T, class Ref,
    class Ptr, class Dist>
    class reverse_iterator;
template<class Cont>
    class back_insert_iterator;
template<class Cont>
    class front_insert_iterator;
template<class Cont>
    class insert_iterator;
template<class T, class Dist>
    class istream_iterator;
template<class T>
    class ostream_iterator;
template<class E, class T>
    class istreambuf_iterator;
template<class E, class T>
    class ostreambuf_iterator;
//    TEMPLATE FUNCTIONS
template<class BidIt, class T, class Ref, class Ptr, class Dist>
    bool operator==(
        const reverse_bidirectional_iterator<BidIt, T, Ref,
            Ptr, Dist>& lhs,
        const reverse_bidirectional_iterator<BidIt, T, Ref,
            Ptr, Dist>& rhs);
template<class RanIt, class T, class Ref, class Ptr, class Dist>
    bool operator==(
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>& lhs,
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>& rhs);
template<class T, class Dist>
    bool operator==(
        const istream_iterator<T, Dist>& lhs,
        const istream_iterator<T, Dist>& rhs);
template<class E, class T>
    bool operator==(
        const istreambuf_iterator<E, T>& lhs,
        const istreambuf_iterator<E, T>& rhs);
template<class BidIt, class T, class Ref, class Ptr, class Dist>
    bool operator!=(
        const reverse_bidirectional_iterator<BidIt, T, Ref,
            Ptr, Dist>& lhs,
        const reverse_bidirectional_iterator<BidIt, T, Ref,
            Ptr, Dist>& rhs);
template<class RanIt, class T, class Ref, class Ptr, class Dist>
    bool operator!=(
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>& lhs,
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>& rhs);
template<class T, class Dist>
    bool operator!=(
        const istream_iterator<T, Dist>& lhs,
        const istream_iterator<T, Dist>& rhs);
template<class E, class T>
    bool operator!=(
        const istreambuf_iterator<E, T>& lhs,
        const istreambuf_iterator<E, T>& rhs);
template<class RanIt, class T, class Ref, class Ptr, class Dist>
    bool operator<(
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>&mmp lhs,
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>& rhs);
template<class RanIt, class T, class Ref, class Ptr, class Dist>
    bool operator>(
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>&mmp lhs,
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>& rhs);
template<class RanIt, class T, class Ref, class Ptr, class Dist>
    bool operator<=(
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>&mmp lhs,
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>& rhs);
template<class RanIt, class T, class Ref, class Ptr, class Dist>
    bool operator>=(
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>&mmp lhs,
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>& rhs);
template<class RanIt, class T, class Ref, class Ptr, class Dist>
    Dist operator-(
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>& lhs,
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>& rhs);
template<class RanIt, class T, class Ref, class Ptr, class Dist>
    reverse_iterator<RanIt, T, Ref, Ptr, Dist> operator+(
        Dist n,
        const reverse_iterator<RanIt, T, Ref, Ptr, Dist>& rhs);
template<class Cont>
    back_insert_iterator<Cont> back_inserter(Cont& x);
template<class Cont>
    front_insert_iterator<Cont> front_inserter(Cont& x);
template<class Cont, class Iter>
    insert_iterator<Cont> inserter(Cont& x, Iter it);
template<class InIt, class Dist>
    void advance(InIt& it, Dist n);
template<class Init, class Dist>
    ptrdiff_t distance(InIt first, InIt last);
    };

Include the STL standard header <iterator> to define a number of classes, template classes, and template functions that aid in the declaration and manipulation of iterators.