liborigin
2.0.0
|
Iterator which traverses only the nodes which are siblings of each other. More...
#include <tree.hh>
Public Member Functions | |
bool | operator!= (const sibling_iterator &) const |
sibling_iterator & | operator++ () |
sibling_iterator | operator++ (int) |
sibling_iterator & | operator+= (unsigned int) |
sibling_iterator & | operator-- () |
sibling_iterator | operator-- (int) |
sibling_iterator & | operator-= (unsigned int) |
bool | operator== (const sibling_iterator &) const |
tree_node * | range_first () const |
tree_node * | range_last () const |
sibling_iterator () | |
sibling_iterator (tree_node *) | |
sibling_iterator (const sibling_iterator &) | |
sibling_iterator (const iterator_base &) | |
![]() | |
sibling_iterator | begin () const |
sibling_iterator | end () const |
iterator_base () | |
iterator_base (tree_node *) | |
unsigned int | number_of_children () const |
Number of children of the node pointed to by the iterator. More... | |
T & | operator* () const |
T * | operator-> () const |
void | skip_children () |
When called, the next increment/decrement skips children of this node. More... | |
Public Attributes | |
tree_node * | parent_ |
![]() | |
tree_node * | node |
Private Member Functions | |
void | set_parent_ () |
Additional Inherited Members | |
![]() | |
typedef ptrdiff_t | difference_type |
typedef std::bidirectional_iterator_tag | iterator_category |
typedef T * | pointer |
typedef T & | reference |
typedef size_t | size_type |
typedef T | value_type |
![]() | |
bool | skip_current_children_ |
Iterator which traverses only the nodes which are siblings of each other.
tree< T, tree_node_allocator >::sibling_iterator::sibling_iterator | ( | ) |
tree< T, tree_node_allocator >::sibling_iterator::sibling_iterator | ( | const sibling_iterator & | other | ) |
tree< T, tree_node_allocator >::sibling_iterator::sibling_iterator | ( | const iterator_base & | other | ) |
bool tree< T, tree_node_allocator >::sibling_iterator::operator!= | ( | const sibling_iterator & | other | ) | const |
tree< T, tree_node_allocator >::sibling_iterator & tree< T, tree_node_allocator >::sibling_iterator::operator++ | ( | ) |
tree< T, tree_node_allocator >::sibling_iterator tree< T, tree_node_allocator >::sibling_iterator::operator++ | ( | int | ) |
tree< T, tree_node_allocator >::sibling_iterator & tree< T, tree_node_allocator >::sibling_iterator::operator+= | ( | unsigned int | num | ) |
tree< T, tree_node_allocator >::sibling_iterator & tree< T, tree_node_allocator >::sibling_iterator::operator-- | ( | ) |
tree< T, tree_node_allocator >::sibling_iterator tree< T, tree_node_allocator >::sibling_iterator::operator-- | ( | int | ) |
tree< T, tree_node_allocator >::sibling_iterator & tree< T, tree_node_allocator >::sibling_iterator::operator-= | ( | unsigned int | num | ) |
bool tree< T, tree_node_allocator >::sibling_iterator::operator== | ( | const sibling_iterator & | other | ) | const |
tree< T, tree_node_allocator >::tree_node * tree< T, tree_node_allocator >::sibling_iterator::range_last | ( | ) | const |
References tree_node_< T >::last_child, and tree< T, tree_node_allocator >::sibling_iterator::parent_.
Referenced by tree< T, tree_node_allocator >::leaf_iterator::leaf_iterator(), tree< T, tree_node_allocator >::post_order_iterator::post_order_iterator(), and tree< T, tree_node_allocator >::pre_order_iterator::pre_order_iterator().
|
private |
tree_node* tree< T, tree_node_allocator >::sibling_iterator::parent_ |
Referenced by tree< T, tree_node_allocator >::iterator_base::begin(), tree< T, tree_node_allocator >::iterator_base::end(), tree< T, tree_node_allocator >::leaf_iterator::leaf_iterator(), tree< T, tree_node_allocator >::sibling_iterator::operator--(), tree< T, tree_node_allocator >::post_order_iterator::post_order_iterator(), tree< T, tree_node_allocator >::pre_order_iterator::pre_order_iterator(), tree< T, tree_node_allocator >::sibling_iterator::range_first(), tree< T, tree_node_allocator >::sibling_iterator::range_last(), and tree< T, tree_node_allocator >::sibling_iterator::set_parent_().