Man Page Bidirectional_Iterators.3



                       Standard C++ Library
             Copyright 1998, Rogue Wave Software, Inc.



NAME

     Bidirectional_Iterators

      - An iterator that can both read and write and can traverse
     a container in both directions





DESCRIPTION

     NOTE:
        For a complete discussion of iterators, see the Iterators
        section of this reference.



     Iterators are a generalization of pointers that allow a  C++
     program  to  uniformly  interact  with different data struc-
     tures. Bidirectional iterators can move  both  forwards  and
     backwards  through a container, and have the ability to both
     read and write data. These iterators  satisfy  the  require-
     ments listed below.





KEY TO ITERATOR REQUIREMENTS

     The following key  pertains  to  the  iterator  descriptions
     listed below:

     a and b   values of type X



     n   value representing a distance between two iterators



     u, Distance, tmp and m   identifiers



     r   value of type X&



     t   value of type T


REQUIREMENTS FOR BIDIRECTIONAL ITERATORS

     A bidirectional iterator  must  meet  all  the  requirements
     listed  below. Note that most of these requirements are also
     the requirements for forward iterators.

     X u   u might have a singular value



     X()   X() might be singular



     X(a)   copy constructor, a == X(a)



     X u(a)   copy constructor, u == a



     X u = a   assignment, u == a



     r = a   assignment, r == a



     a == b, a != b   return value convertible to bool



     a->m   equivalent to (*a).m



     *a   return value convertible to T&



     ++r   returns X&



     r++   return value convertible to const X&



     *r++   returns T&


     --r   returns X&



     r--   return value convertible to const X&



     *r--   returns T&



     Like forward iterators,  bidirectional  iterators  have  the
     condition that a == b implies *a== *b.

     There are no restrictions on the number of passes  an  algo-
     rithm may make through the structure.





SEE ALSO

     Containers, Iterators, Forward_Iterators