For CGAL_Forward_container_from_circulator<C> the circulator has to fulfill at least the requirements for a forward circulator. The similar CGAL_Bidirectional_container_from_circulator<C> adaptor 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>
| |
the template argument C.
| |
| |
|
| |
the resulting iterators will have a singular value.
| |
| |
the resulting iterators will have a singular value if the
circulator c is singular.
|
| |
the resulting iterators will have a singular value.
| |
| |
the resulting iterators will have a singular value if the
circulator c is singular.
|
| |
the resulting iterators will have a singular value.
| |
| |
the resulting iterators will have a singular value if the
circulator c is singular.
|
|
| |
the start iterator. | ||
|
| |
the start const iterator. | ||
|
| the past-the-end iterator. |
|
| |
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 .