-
Notifications
You must be signed in to change notification settings - Fork 0
range const_iterator
struct const_iterator
Points to a location in a range container.
-
typedef value_type type
so that generic wrappers can access the parent container'svalue_type
-
const range<value_type> *root
is a pointer to the parent container. -
value_type value
is the location of this iterator designated by value.
const_iterator()
The default constructor. root
is set to NULL
.
const_iterator(const range<value_type> *root, value_type value)
This sets root
and value
directly. It's protected member that should only be used by the parent container.
operator bool()
checks whether this iterator points to a valid value in the range container.
value_type operator*()
returns this iterator's value.
const value_type *operator->()
The dot operator for this iterator's value.
const value_type *ptr()
returns a pointer to this iterator's value.
value_type get()
returns this iterator's value.
const_iterator &ref()
This is a placeholder function. It just returns the same iterator.
int idx()
returns the current index of this iterator. value - start
const_iterator &operator++()
Increments the iterator to the next value
.
const_iterator &operator--()
Decrements the iterator to the previous value
.
const_iterator &operator+=(int n)
Increments the iterator by n
.
const_iterator &operator-=(int n)
Decrements the iterator by n
.
const_iterator operator+(int n)
Returns the iterator n
elements ahead of this one.
const_iterator operator-(int n)
Returns the iterator n
elements behind this one.
bool operator==(const_iterator i)
Checks equality between iterators.
bool operator!=(const_iterator i)
Checks inequality between iterators.
int operator-(const_iterator i)
Returns the number of elements between i
and this iterator.
slice<range<const_iterator> > sub(int length)
range<value_type> subcpy(int length)
Returns a slice or copy starting at this iterator with length length
.
slice<range<const_iterator> > sub()
range<value_type> subcpy()
Returns a slice or copy from this iterator to the end of the container.
#include <std/ascii_stream.h>
#include <std/slice.h>
using namespace core;
int main()
{
range<int> f(3, 8);
for (range<int>::iterator i = f.begin(); i != f.end(); i++)
cout << i.idx() << ": " << *i << endl;
return 0;
}
0: 3
1: 4
2: 5
3: 6
4: 7