19 #ifndef CIRCULAR_ITERATOR_HH
20 #define CIRCULAR_ITERATOR_HH
25 using iterator =
typename T::const_iterator;
26 using iterator_category = std::bidirectional_iterator_tag;
27 using value_type =
typename T::value_type;
28 using difference_type = std::ptrdiff_t;
29 using pointer = value_type*;
30 using reference = value_type&;
78 for(
unsigned int i=0;i<n;++i)
85 for(
unsigned int i=0;i<n;++i)
104 using iterator =
typename T::iterator;
105 using iterator_category = std::bidirectional_iterator_tag;
106 using value_type =
typename T::value_type;
107 using difference_type = std::ptrdiff_t;
108 using pointer = value_type*;
109 using reference = value_type&;
118 circular_iter(iterator b, iterator e, iterator pos) : iter(pos), begin(b), end(e) {};
155 for(
unsigned int i=0;i<n;++i)
162 for(
unsigned int i=0;i<n;++i)
174 {
return (iter == rhs.iter);}
circular_iter< T > operator-(int n)
circular_iter< T > operator+(int n)
circular_iter< T > & operator--()
circular_iter(iterator b, iterator e, iterator pos)
bool operator==(const circular_iter< T > &rhs) const
bool operator!=(const circular_iter< T > &rhs) const
const value_type operator*() const
circular_iter(iterator b, iterator e)
circular_iter< T > operator--(int)
circular_iter< T > operator++(int)
circular_iter< T > & operator++()
const_circular_iter< T > & operator++()
const_circular_iter< T > operator++(int)
const_circular_iter(iterator b, iterator e, iterator pos)
bool operator==(const const_circular_iter< T > &rhs) const
const_circular_iter< T > & operator--()
const_circular_iter< T > operator-(int n)
const value_type operator*() const
const_circular_iter< T > operator--(int)
bool operator!=(const const_circular_iter< T > &rhs) const
const_circular_iter< T > operator+(int n)
const_circular_iter(iterator b, iterator e)
const_circular_iter(T &t)