|
CLAW Library (a C++ Library Absolutely Wonderful) 1.5.5
|
AVL iterator. More...
#include <avl_base.hpp>
Public Types | |
| typedef K | value_type |
| typedef K & | reference |
| typedef K *const | pointer |
| typedef ptrdiff_t | difference_type |
| typedef std::bidirectional_iterator_tag | iterator_category |
Public Member Functions | |
| avl_iterator () | |
| Constructor. | |
| avl_iterator (avl_node_ptr node, bool final) | |
| Constructor. | |
| avl_iterator & | operator++ () |
| Preincrement. | |
| avl_iterator | operator++ (int) |
| Postincrement. | |
| avl_iterator & | operator-- () |
| Predecrement. | |
| avl_iterator | operator-- (int) |
| Postdecrement. | |
| reference | operator* () const |
| Dereference. | |
| pointer | operator-> () const |
| Reference. | |
| bool | operator== (const avl_iterator &it) const |
| Equality. | |
| bool | operator!= (const avl_iterator &it) const |
| Difference. | |
Private Attributes | |
| 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 132 of file avl_base.hpp.
| typedef ptrdiff_t claw::avl_base< K, Comp >::avl_iterator::difference_type |
Definition at line 138 of file avl_base.hpp.
| typedef std::bidirectional_iterator_tag claw::avl_base< K, Comp >::avl_iterator::iterator_category |
Definition at line 140 of file avl_base.hpp.
| typedef K* const claw::avl_base< K, Comp >::avl_iterator::pointer |
Definition at line 137 of file avl_base.hpp.
| typedef K& claw::avl_base< K, Comp >::avl_iterator::reference |
Definition at line 136 of file avl_base.hpp.
| typedef K claw::avl_base< K, Comp >::avl_iterator::value_type |
Definition at line 135 of file avl_base.hpp.
| claw::avl_base< K, Comp >::avl_iterator::avl_iterator | ( | ) |
Constructor.
Definition at line 595 of file avl_base.tpp.
: m_current(NULL), m_is_final(true) { } // avl_iterator::avl_iterator() [constructeur]
| claw::avl_base< K, Comp >::avl_iterator::avl_iterator | ( | avl_node_ptr | node, |
| bool | final | ||
| ) |
Constructor.
Definition at line 607 of file avl_base.tpp.
: m_current(node), m_is_final(final) { } // avl_iterator::avl_iterator() [constructeur with node]
| bool claw::avl_base< K, Comp >::avl_iterator::operator!= | ( | const avl_iterator & | it | ) | const |
Difference.
| it | Iterator to compare to. |
Definition at line 723 of file avl_base.tpp.
{
return !( *this == it );
} // avl_iterator::operator!=()
| claw::avl_base< K, Comp >::avl_iterator::reference claw::avl_base< K, Comp >::avl_iterator::operator* | ( | ) | const |
Dereference.
Definition at line 688 of file avl_base.tpp.
{
return m_current->key;
} // avl_iterator::operator*() [dereference]
| claw::avl_base< K, Comp >::avl_iterator & claw::avl_base< K, Comp >::avl_iterator::operator++ | ( | ) |
Preincrement.
Definition at line 620 of file avl_base.tpp.
References claw::avl_base< K, Comp >::avl_node::next().
{
assert(!m_is_final);
assert(m_current);
avl_node* p = m_current->next();
if ( m_current == p )
m_is_final = true;
else
m_current = p;
return *this;
} // avl_iterator::operator++() [preincrement]
| claw::avl_base< K, Comp >::avl_iterator claw::avl_base< K, Comp >::avl_iterator::operator++ | ( | int | ) |
Postincrement.
Definition at line 641 of file avl_base.tpp.
{
avl_iterator it = *this;
++(*this);
return it;
} // avl_iterator::operator++ [postincrement]
| claw::avl_base< K, Comp >::avl_iterator claw::avl_base< K, Comp >::avl_iterator::operator-- | ( | int | ) |
Postdecrement.
Definition at line 675 of file avl_base.tpp.
{
avl_iterator it = *this;
--(*this);
return it;
} // avl_iterator::operator-- [postdecrement]
| claw::avl_base< K, Comp >::avl_iterator & claw::avl_base< K, Comp >::avl_iterator::operator-- | ( | ) |
Predecrement.
Definition at line 655 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_iterator::operator--() [predecrement]
| claw::avl_base< K, Comp >::avl_iterator::pointer claw::avl_base< K, Comp >::avl_iterator::operator-> | ( | ) | const |
Reference.
Definition at line 699 of file avl_base.tpp.
{
return &m_current->key;
} // avl_iterator::operator->()
| bool claw::avl_base< K, Comp >::avl_iterator::operator== | ( | const avl_iterator & | it | ) | const |
Equality.
| it | Iterator to compare to. |
Definition at line 711 of file avl_base.tpp.
References claw::avl_base< K, Comp >::avl_iterator::m_current, and claw::avl_base< K, Comp >::avl_iterator::m_is_final.
{
return (m_current == it.m_current) && (m_is_final == it.m_is_final);
} // avl_iterator::operator==()
avl_node_ptr claw::avl_base< K, Comp >::avl_iterator::m_current [private] |
Current node in the tree.
Definition at line 157 of file avl_base.hpp.
Referenced by claw::avl_base< K, Comp >::avl_iterator::operator==().
bool claw::avl_base< K, Comp >::avl_iterator::m_is_final [private] |
True if we've gone past the last node.
Definition at line 160 of file avl_base.hpp.
Referenced by claw::avl_base< K, Comp >::avl_iterator::operator==().
1.7.3