3Depict
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Public Attributes | Protected Attributes | List of all members
tree< T, tree_node_allocator >::iterator_base Class Reference

Base class for iterators, only pointers stored, no traversal logic. More...

#include <tree.hh>

Inheritance diagram for tree< T, tree_node_allocator >::iterator_base:
Inheritance graph
[legend]
Collaboration diagram for tree< T, tree_node_allocator >::iterator_base:
Collaboration graph
[legend]

Public Types

typedef T value_type
 
typedef T * pointer
 
typedef T & reference
 
typedef size_t size_type
 
typedef ptrdiff_t difference_type
 
typedef std::bidirectional_iterator_tag iterator_category
 

Public Member Functions

 iterator_base ()
 
 iterator_base (tree_node *)
 
T & operator* () const
 
T * operator-> () const
 
void skip_children ()
 When called, the next increment/decrement skips children of this node. More...
 
void skip_children (bool skip)
 
unsigned int number_of_children () const
 Number of children of the node pointed to by the iterator. More...
 
sibling_iterator begin () const
 
sibling_iterator end () const
 

Public Attributes

tree_nodenode
 

Protected Attributes

bool skip_current_children_
 

Detailed Description

template<class T, class tree_node_allocator = std::allocator<tree_node_<T> >>
class tree< T, tree_node_allocator >::iterator_base

Base class for iterators, only pointers stored, no traversal logic.

Member Typedef Documentation

◆ difference_type

template<class T, class tree_node_allocator = std::allocator<tree_node_<T> >>
typedef ptrdiff_t tree< T, tree_node_allocator >::iterator_base::difference_type

◆ iterator_category

template<class T, class tree_node_allocator = std::allocator<tree_node_<T> >>
typedef std::bidirectional_iterator_tag tree< T, tree_node_allocator >::iterator_base::iterator_category

◆ pointer

template<class T, class tree_node_allocator = std::allocator<tree_node_<T> >>
typedef T* tree< T, tree_node_allocator >::iterator_base::pointer

◆ reference

template<class T, class tree_node_allocator = std::allocator<tree_node_<T> >>
typedef T& tree< T, tree_node_allocator >::iterator_base::reference

◆ size_type

template<class T, class tree_node_allocator = std::allocator<tree_node_<T> >>
typedef size_t tree< T, tree_node_allocator >::iterator_base::size_type

◆ value_type

template<class T, class tree_node_allocator = std::allocator<tree_node_<T> >>
typedef T tree< T, tree_node_allocator >::iterator_base::value_type

Constructor & Destructor Documentation

◆ iterator_base() [1/2]

template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::iterator_base::iterator_base ( )

◆ iterator_base() [2/2]

template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::iterator_base::iterator_base ( tree_node tn)

Member Function Documentation

◆ begin()

template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::sibling_iterator tree< T, tree_node_allocator >::iterator_base::begin ( ) const

◆ end()

template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::sibling_iterator tree< T, tree_node_allocator >::iterator_base::end ( ) const

◆ number_of_children()

template<class T , class tree_node_allocator >
unsigned int tree< T, tree_node_allocator >::iterator_base::number_of_children ( ) const

◆ operator*()

template<class T , class tree_node_allocator >
T & tree< T, tree_node_allocator >::iterator_base::operator* ( ) const

◆ operator->()

template<class T , class tree_node_allocator >
T * tree< T, tree_node_allocator >::iterator_base::operator-> ( ) const

◆ skip_children() [1/2]

template<class T , class tree_node_allocator >
void tree< T, tree_node_allocator >::iterator_base::skip_children ( )

When called, the next increment/decrement skips children of this node.

References tree< T, tree_node_allocator >::iterator_base::skip_current_children_.

Referenced by tree< T, tree_node_allocator >::post_order_iterator::post_order_iterator(), and tree< T, tree_node_allocator >::pre_order_iterator::pre_order_iterator().

Here is the caller graph for this function:

◆ skip_children() [2/2]

template<class T , class tree_node_allocator >
void tree< T, tree_node_allocator >::iterator_base::skip_children ( bool  skip)

Member Data Documentation

◆ node

template<class T, class tree_node_allocator = std::allocator<tree_node_<T> >>
tree_node* tree< T, tree_node_allocator >::iterator_base::node

Referenced by tree< T, tree_node_allocator >::iterator_base::begin(), tree< Filter *>::begin_fixed(), tree< T, tree_node_allocator >::post_order_iterator::descend_all(), tree< T, tree_node_allocator >::iterator_base::end(), tree< T, tree_node_allocator >::leaf_iterator::leaf_iterator(), tree< T, tree_node_allocator >::iterator_base::number_of_children(), tree< T, tree_node_allocator >::pre_order_iterator::operator!=(), tree< T, tree_node_allocator >::post_order_iterator::operator!=(), tree< T, tree_node_allocator >::breadth_first_queued_iterator::operator!=(), tree< T, tree_node_allocator >::fixed_depth_iterator::operator!=(), tree< T, tree_node_allocator >::sibling_iterator::operator!=(), tree< T, tree_node_allocator >::leaf_iterator::operator!=(), tree< T, tree_node_allocator >::iterator_base_less::operator()(), tree< T, tree_node_allocator >::iterator_base::operator*(), tree< T, tree_node_allocator >::pre_order_iterator::operator++(), tree< T, tree_node_allocator >::post_order_iterator::operator++(), tree< T, tree_node_allocator >::breadth_first_queued_iterator::operator++(), tree< T, tree_node_allocator >::fixed_depth_iterator::operator++(), tree< T, tree_node_allocator >::sibling_iterator::operator++(), tree< T, tree_node_allocator >::leaf_iterator::operator++(), tree< T, tree_node_allocator >::pre_order_iterator::operator--(), tree< T, tree_node_allocator >::post_order_iterator::operator--(), tree< T, tree_node_allocator >::fixed_depth_iterator::operator--(), tree< T, tree_node_allocator >::sibling_iterator::operator--(), tree< T, tree_node_allocator >::leaf_iterator::operator--(), tree< T, tree_node_allocator >::iterator_base::operator->(), tree< T, tree_node_allocator >::pre_order_iterator::operator==(), tree< T, tree_node_allocator >::post_order_iterator::operator==(), tree< T, tree_node_allocator >::breadth_first_queued_iterator::operator==(), tree< T, tree_node_allocator >::fixed_depth_iterator::operator==(), tree< T, tree_node_allocator >::sibling_iterator::operator==(), tree< T, tree_node_allocator >::leaf_iterator::operator==(), tree< T, tree_node_allocator >::post_order_iterator::post_order_iterator(), tree< T, tree_node_allocator >::pre_order_iterator::pre_order_iterator(), and tree< T, tree_node_allocator >::sibling_iterator::sibling_iterator().

◆ skip_current_children_

template<class T, class tree_node_allocator = std::allocator<tree_node_<T> >>
bool tree< T, tree_node_allocator >::iterator_base::skip_current_children_
protected

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