For CGAL_Forward_container_from_circulator<C> the circulator has to fulfill at least the requirements for a forward circulator. The similar adaptor CGAL_Bidirectional_container_from_circulator<C> requires a bidirectional circulator to provide bidirectional iterators. Likewise, the adaptor CGAL_Random_access_container_from_circulator<C> requires a random access circulator to provide random access iterators. In this case the adaptor implements a total ordering relation that is currently not required for random access circulators.
#include < CGAL/circulator.h>
CGAL_Forward_container_from_circulator<C>::Circulator | |
the template argument C.
| |
CGAL_Forward_container_from_circulator<C>::iterator | |
CGAL_Forward_container_from_circulator<C>::const_iterator |
CGAL_Forward_container_from_circulator<C> container; | |
the resulting iterators will have a singular value.
| |
CGAL_Forward_container_from_circulator<C> container ( C c); | |
the resulting iterators will have a singular value if the
circulator c is singular.
|
CGAL_Bidirectional_container_from_circulator<C> container; | |||
the resulting iterators will have a singular value.
| |||
| |||
the resulting iterators will have a singular value if the
circulator c is singular.
|
CGAL_Random_access_container_from_circulator<C> container; | |||
the resulting iterators will have a singular value.
| |||
| |||
the resulting iterators will have a singular value if the
circulator c is singular.
|
iterator | container.begin () | the start iterator. |
const_iterator | container.begin () const | the start const iterator. |
iterator | container.end () | the past-the-end iterator. |
const_iterator | container.end () const | the past-the-end const iterator. |
The iterator and const_iterator types are of the appropriate iterator category. In addition to the operations required for their category, they have a member function current_circulator() that returns a circulator pointing to the same position as the iterator does.
Circulator c; /* c is assumed to be a bidirectional circulator. */ CGAL_Bidirectional_container_from_circulator<Circulator> container( c); reverse( container.begin(), container.end());
The random access iterator has to be able to compute the size of the data structure. It is needed for the difference of a past-the-end iterator and the begin iterator. Therefore, the constructor for the random access iterator choose the minimal circulator for the internal anchor position. The minimal circulator is part of the random access circulator requirements, see Section .