CLAW Library (a C++ Library Absolutely Wonderful) 1.5.5
|
AVL iterator. More...
#include <avl_base.hpp>
Public Types | |
typedef K | value_type |
typedef const K & | reference |
typedef const K *const | pointer |
typedef ptrdiff_t | difference_type |
typedef std::bidirectional_iterator_tag | iterator_category |
Public Member Functions | |
avl_const_iterator () | |
Constructor. | |
avl_const_iterator (const_avl_node_ptr node, bool final) | |
Constructor. | |
avl_const_iterator & | operator++ () |
Preincrement. | |
avl_const_iterator | operator++ (int) |
Postincrement. | |
avl_const_iterator & | operator-- () |
Predecrement. | |
avl_const_iterator | operator-- (int) |
Postdecrement. | |
reference | operator* () const |
Dereference. | |
pointer | operator-> () const |
Reference. | |
bool | operator== (const avl_const_iterator &it) const |
Equality. | |
bool | operator!= (const avl_const_iterator &it) const |
Difference. | |
Private Attributes | |
const_avl_node_ptr | m_current |
Current node in the tree. | |
bool | m_is_final |
True if we've gone past the last node. |
AVL iterator.
Definition at line 167 of file avl_base.hpp.
typedef ptrdiff_t claw::avl_base< K, Comp >::avl_const_iterator::difference_type |
Definition at line 173 of file avl_base.hpp.
typedef std::bidirectional_iterator_tag claw::avl_base< K, Comp >::avl_const_iterator::iterator_category |
Definition at line 175 of file avl_base.hpp.
typedef const K* const claw::avl_base< K, Comp >::avl_const_iterator::pointer |
Definition at line 172 of file avl_base.hpp.
typedef const K& claw::avl_base< K, Comp >::avl_const_iterator::reference |
Definition at line 171 of file avl_base.hpp.
typedef K claw::avl_base< K, Comp >::avl_const_iterator::value_type |
Definition at line 170 of file avl_base.hpp.
claw::avl_base< K, Comp >::avl_const_iterator::avl_const_iterator | ( | ) |
Constructor.
Definition at line 741 of file avl_base.tpp.
: m_current(NULL), m_is_final(true) { } // avl_const_iterator::avl_const_iterator() [constructeur]
claw::avl_base< K, Comp >::avl_const_iterator::avl_const_iterator | ( | const_avl_node_ptr | node, |
bool | final | ||
) |
Constructor.
Definition at line 753 of file avl_base.tpp.
: m_current(node), m_is_final(final) { } // avl_const_iterator::avl_const_iterator() [constructeur with node]
bool claw::avl_base< K, Comp >::avl_const_iterator::operator!= | ( | const avl_const_iterator & | it | ) | const |
Difference.
it | Iterator to compare to. |
Definition at line 869 of file avl_base.tpp.
{ return !( *this == it ); } // avl_const_iterator::operator!=()
claw::avl_base< K, Comp >::avl_const_iterator::reference claw::avl_base< K, Comp >::avl_const_iterator::operator* | ( | ) | const |
Dereference.
Definition at line 834 of file avl_base.tpp.
{ return m_current->key; } // avl_const_iterator::operator*() [dereference]
claw::avl_base< K, Comp >::avl_const_iterator & claw::avl_base< K, Comp >::avl_const_iterator::operator++ | ( | ) |
Preincrement.
Definition at line 766 of file avl_base.tpp.
{ assert(!m_is_final); assert(m_current); const_avl_node_ptr p = m_current->next(); if ( m_current == p ) m_is_final = true; else m_current = p; return *this; } // avl_const_iterator::operator++() [preincrement]
claw::avl_base< K, Comp >::avl_const_iterator claw::avl_base< K, Comp >::avl_const_iterator::operator++ | ( | int | ) |
Postincrement.
Definition at line 787 of file avl_base.tpp.
{ avl_const_iterator it = *this; ++(*this); return it; } // avl_const_iterator::operator++ [postincrement]
claw::avl_base< K, Comp >::avl_const_iterator claw::avl_base< K, Comp >::avl_const_iterator::operator-- | ( | int | ) |
Postdecrement.
Definition at line 821 of file avl_base.tpp.
{ avl_const_iterator it = *this; --(*this); return it; } // avl_const_iterator::operator-- [postdecrement]
claw::avl_base< K, Comp >::avl_const_iterator & claw::avl_base< K, Comp >::avl_const_iterator::operator-- | ( | ) |
Predecrement.
Definition at line 801 of file avl_base.tpp.
{ assert(m_current); if (m_is_final) m_is_final = !m_is_final; else m_current = m_current->prev(); assert(m_current != NULL); return *this; } // avl_const_iterator::operator--() [predecrement]
claw::avl_base< K, Comp >::avl_const_iterator::pointer claw::avl_base< K, Comp >::avl_const_iterator::operator-> | ( | ) | const |
Reference.
Definition at line 845 of file avl_base.tpp.
{ return &m_current->key; } // avl_const_iterator::operator->()
bool claw::avl_base< K, Comp >::avl_const_iterator::operator== | ( | const avl_const_iterator & | it | ) | const |
Equality.
it | Iterator to compare to. |
Definition at line 857 of file avl_base.tpp.
{ return (m_current == it.m_current) && (m_is_final == it.m_is_final); } // avl_const_iterator::operator==()
const_avl_node_ptr claw::avl_base< K, Comp >::avl_const_iterator::m_current [private] |
Current node in the tree.
Definition at line 192 of file avl_base.hpp.
bool claw::avl_base< K, Comp >::avl_const_iterator::m_is_final [private] |
True if we've gone past the last node.
Definition at line 195 of file avl_base.hpp.