orbtree
Public Types | Public Member Functions | Protected Types | Protected Attributes | Friends | List of all members
stacked_vector::vector< T, vector_type >::iterator_base< is_const > Class Template Reference

Iterators store a reference to this class and a position. More...

#include <vector_stacked.h>

Public Types

typedef std::random_access_iterator_tag iterator_category
 
typedef T value_type
 
typedef T * pointer
 
typedef T & reference
 
typedef ssize_t difference_type
 

Public Member Functions

 iterator_base (vector_type1 &v_, size_t pos_=0)
 
 iterator_base (vector_type1 *v_, size_t pos_=0)
 
 iterator_base (const iterator_base< false > &it)
 
template<bool is_const_ = is_const>
 iterator_base (const iterator_base< true > &it, typename std::enable_if< is_const_ >::type *=0)
 
reference operator* ()
 access to values
 
pointer operator-> ()
 read-only access values
 
template<bool is_const2>
bool operator== (const iterator_base< is_const2 > &i) const
 compare iterators More...
 
template<bool is_const2>
bool operator!= (const iterator_base< is_const2 > &i) const
 compare iterators More...
 
template<bool is_const2>
bool operator< (const iterator_base< is_const2 > &i) const
 compare iterators
 
template<bool is_const2>
bool operator> (const iterator_base< is_const2 > &i) const
 compare iterators
 
template<bool is_const2>
bool operator<= (const iterator_base< is_const2 > &i) const
 compare iterators
 
template<bool is_const2>
bool operator>= (const iterator_base< is_const2 > &i) const
 compare iterators
 
iterator_baseoperator++ ()
 increment: move to the next stored node
 
iterator_base operator++ (int)
 increment: move to the next stored node
 
iterator_baseoperator-- ()
 decrement: move to the previous stored node
 
iterator_base operator-- (int)
 decrement: move to the previous stored node
 
iterator_baseoperator+= (ssize_t i)
 move forward by the given number of steps
 
iterator_baseoperator-= (ssize_t i)
 move backward
 
iterator_base operator+ (ssize_t i) const
 
iterator_base operator- (ssize_t i) const
 
template<bool is_const2>
ssize_t operator- (const iterator_base< is_const2 > &i) const
 Calculate the difference between two iterators. This has undefined behavior if the subtraction overflows.
 
std::conditional< is_const, const reference, reference >::type operator[] (ssize_t i)
 

Protected Types

typedef std::conditional< is_const, const vector, vector >::type vector_type1
 

Protected Attributes

vector_type1 * v
 
size_t pos
 

Friends

class iterator_base<!is_const >
 
class vector< T, vector_type >
 

Detailed Description

template<class T, template< class > class vector_type = std_vector_wrapper>
template<bool is_const>
class stacked_vector::vector< T, vector_type >::iterator_base< is_const >

Iterators store a reference to this class and a position.

Member Function Documentation

◆ operator!=()

template<class T, template< class > class vector_type = std_vector_wrapper>
template<bool is_const>
template<bool is_const2>
bool stacked_vector::vector< T, vector_type >::iterator_base< is_const >::operator!= ( const iterator_base< is_const2 > &  i) const
inline

compare iterators

Note: comparing iterators from different map / tree is undefined behavior, it is not explicitely tested

◆ operator==()

template<class T, template< class > class vector_type = std_vector_wrapper>
template<bool is_const>
template<bool is_const2>
bool stacked_vector::vector< T, vector_type >::iterator_base< is_const >::operator== ( const iterator_base< is_const2 > &  i) const
inline

compare iterators

Note: comparing iterators from different vector is undefined behavior, it is not explicitely tested


The documentation for this class was generated from the following file: