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

Depth-first iterator, first accessing the children, then the node itself. More...

#include <tree.hh>

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

Public Member Functions

 post_order_iterator ()
 
 post_order_iterator (tree_node *)
 
 post_order_iterator (const iterator_base &)
 
 post_order_iterator (const sibling_iterator &)
 
bool operator== (const post_order_iterator &) const
 
bool operator!= (const post_order_iterator &) const
 
post_order_iteratoroperator++ ()
 
post_order_iteratoroperator-- ()
 
post_order_iterator operator++ (int)
 
post_order_iterator operator-- (int)
 
post_order_iteratoroperator+= (unsigned int)
 
post_order_iteratoroperator-= (unsigned int)
 
void descend_all ()
 Set iterator to the first child as deep as possible down the tree. More...
 
- Public Member Functions inherited from tree< T, tree_node_allocator >::iterator_base
 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
 

Additional Inherited Members

- Public Types inherited from tree< T, tree_node_allocator >::iterator_base
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 Attributes inherited from tree< T, tree_node_allocator >::iterator_base
tree_nodenode
 
- Protected Attributes inherited from tree< T, tree_node_allocator >::iterator_base
bool skip_current_children_
 

Detailed Description

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

Depth-first iterator, first accessing the children, then the node itself.

Constructor & Destructor Documentation

◆ post_order_iterator() [1/4]

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

◆ post_order_iterator() [2/4]

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

◆ post_order_iterator() [3/4]

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

◆ post_order_iterator() [4/4]

template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::post_order_iterator::post_order_iterator ( const sibling_iterator other)

Member Function Documentation

◆ descend_all()

template<class T , class tree_node_allocator >
void tree< T, tree_node_allocator >::post_order_iterator::descend_all ( )

Set iterator to the first child as deep as possible down the tree.

References tree_node_< T >::first_child, and tree< T, tree_node_allocator >::iterator_base::node.

◆ operator!=()

template<class T , class tree_node_allocator >
bool tree< T, tree_node_allocator >::post_order_iterator::operator!= ( const post_order_iterator other) const

◆ operator++() [1/2]

template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::post_order_iterator & tree< T, tree_node_allocator >::post_order_iterator::operator++ ( )

◆ operator++() [2/2]

template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::post_order_iterator tree< T, tree_node_allocator >::post_order_iterator::operator++ ( int  )

◆ operator+=()

template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::post_order_iterator & tree< T, tree_node_allocator >::post_order_iterator::operator+= ( unsigned int  num)

◆ operator--() [1/2]

template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::post_order_iterator & tree< T, tree_node_allocator >::post_order_iterator::operator-- ( )

◆ operator--() [2/2]

template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::post_order_iterator tree< T, tree_node_allocator >::post_order_iterator::operator-- ( int  )

◆ operator-=()

template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::post_order_iterator & tree< T, tree_node_allocator >::post_order_iterator::operator-= ( unsigned int  num)

◆ operator==()

template<class T , class tree_node_allocator >
bool tree< T, tree_node_allocator >::post_order_iterator::operator== ( const post_order_iterator other) const

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