GiNaCRA  0.6.4
GiNaCRA::tree< T, tree_node_allocator >::sibling_iterator Class Reference

Iterator which traverses only the nodes which are siblings of each other. More...

#include <tree.h>

Inheritance diagram for GiNaCRA::tree< T, tree_node_allocator >::sibling_iterator:
Collaboration diagram for GiNaCRA::tree< T, tree_node_allocator >::sibling_iterator:

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

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

Data Fields

tree_nodeparent_
tree_nodenode

Protected Attributes

bool skip_current_children_

Private Member Functions

void set_parent_ ()

Detailed Description

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

Iterator which traverses only the nodes which are siblings of each other.

Definition at line 227 of file tree.h.


Member Typedef Documentation

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

Definition at line 113 of file tree.h.

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

Definition at line 114 of file tree.h.

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

Definition at line 110 of file tree.h.

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

Definition at line 111 of file tree.h.

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

Definition at line 112 of file tree.h.

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

Definition at line 109 of file tree.h.


Constructor & Destructor Documentation

template<class T , class tree_node_allocator >
GiNaCRA::tree< T, tree_node_allocator >::sibling_iterator::sibling_iterator ( )

Definition at line 3102 of file tree.h.

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

Definition at line 3110 of file tree.h.

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

Definition at line 3126 of file tree.h.

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

Definition at line 3118 of file tree.h.


Member Function Documentation

template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::sibling_iterator GiNaCRA::tree< T, tree_node_allocator >::iterator_base::begin ( ) const [inherited]
template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::sibling_iterator GiNaCRA::tree< T, tree_node_allocator >::iterator_base::end ( ) const [inherited]
template<class T , class tree_node_allocator >
unsigned int GiNaCRA::tree< T, tree_node_allocator >::iterator_base::number_of_children ( ) const [inherited]

Number of children of the node pointed to by the iterator.

Definition at line 2497 of file tree.h.

References GiNaCRA::tree_node_< T >::first_child, GiNaCRA::tree_node_< T >::last_child, and GiNaCRA::tree_node_< T >::next_sibling.

Referenced by GiNaCRA::tree< T, tree_node_allocator >::equal().

template<class T , class tree_node_allocator >
bool GiNaCRA::tree< T, tree_node_allocator >::sibling_iterator::operator!= ( const sibling_iterator other) const
template<class T , class tree_node_allocator >
T & GiNaCRA::tree< T, tree_node_allocator >::iterator_base::operator* ( ) const [inherited]

Definition at line 2385 of file tree.h.

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

Definition at line 3142 of file tree.h.

References GiNaCRA::tree< T, tree_node_allocator >::next_sibling().

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

Definition at line 3165 of file tree.h.

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

Definition at line 3181 of file tree.h.

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

Definition at line 3151 of file tree.h.

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

Definition at line 3173 of file tree.h.

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

Definition at line 3193 of file tree.h.

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

Definition at line 2391 of file tree.h.

template<class T , class tree_node_allocator >
bool GiNaCRA::tree< T, tree_node_allocator >::sibling_iterator::operator== ( const sibling_iterator other) const
template<class T , class tree_node_allocator >
tree< T, tree_node_allocator >::tree_node * GiNaCRA::tree< T, tree_node_allocator >::sibling_iterator::range_first ( ) const

Definition at line 3206 of file tree.h.

References GiNaCRA::tree_node_< T >::first_child.

template<class T , class tree_node_allocator >
void GiNaCRA::tree< T, tree_node_allocator >::sibling_iterator::set_parent_ ( ) [private]

Definition at line 3131 of file tree.h.

References GiNaCRA::tree< T, tree_node_allocator >::parent().

template<class T , class tree_node_allocator >
void GiNaCRA::tree< T, tree_node_allocator >::iterator_base::skip_children ( ) [inherited]

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

Definition at line 2483 of file tree.h.

Referenced by GiNaCRA::tree< T, tree_node_allocator >::copy_().

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

Definition at line 2490 of file tree.h.


Field Documentation

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

Definition at line 131 of file tree.h.

Referenced by GiNaCRA::tree< T, tree_node_allocator >::begin_fixed(), GiNaCRA::tree< T, tree_node_allocator >::debug_verify_consistency(), GiNaCRA::tree< T, tree_node_allocator >::index(), GiNaCRA::tree< T, tree_node_allocator >::insert(), GiNaCRA::tree< T, tree_node_allocator >::move_before(), GiNaCRA::tree< T, tree_node_allocator >::pre_order_iterator::operator!=(), GiNaCRA::tree< T, tree_node_allocator >::post_order_iterator::operator!=(), GiNaCRA::tree< T, tree_node_allocator >::breadth_first_queued_iterator::operator!=(), GiNaCRA::tree< T, tree_node_allocator >::fixed_depth_iterator::operator!=(), GiNaCRA::tree< T, tree_node_allocator >::sibling_iterator::operator!=(), GiNaCRA::tree< T, tree_node_allocator >::leaf_iterator::operator!=(), GiNaCRA::tree< T, tree_node_allocator >::iterator_base_less::operator()(), GiNaCRA::tree< T, tree_node_allocator >::breadth_first_queued_iterator::operator++(), GiNaCRA::tree< T, tree_node_allocator >::pre_order_iterator::operator==(), GiNaCRA::tree< T, tree_node_allocator >::post_order_iterator::operator==(), GiNaCRA::tree< T, tree_node_allocator >::breadth_first_queued_iterator::operator==(), GiNaCRA::tree< T, tree_node_allocator >::fixed_depth_iterator::operator==(), GiNaCRA::tree< T, tree_node_allocator >::sibling_iterator::operator==(), GiNaCRA::tree< T, tree_node_allocator >::leaf_iterator::operator==(), GiNaCRA::tree< T, tree_node_allocator >::reparent(), GiNaCRA::tree< T, tree_node_allocator >::replace(), GiNaCRA::tree< T, tree_node_allocator >::sort(), and GiNaCRA::tree< T, tree_node_allocator >::swap().

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

Definition at line 133 of file tree.h.


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