41 #ifndef PB_DS_BIN_SEARCH_TREE_NODE_ITERATORS_HPP
42 #define PB_DS_BIN_SEARCH_TREE_NODE_ITERATORS_HPP
50 #define PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC \
51 bin_search_tree_const_node_it_<Node, Const_Iterator, Iterator, _Alloc>
54 template<
typename Node,
62 typename _Alloc::template rebind<
87 typename _Alloc::template rebind<metadata_type>::other::const_reference
98 {
return Const_Iterator(
m_p_nd); }
103 {
return m_p_nd->get_metadata(); }
118 {
return m_p_nd == other.m_p_nd; }
123 {
return m_p_nd != other.m_p_nd; }
128 #define PB_DS_TREE_NODE_ITERATOR_CLASS_C_DEC \
129 bin_search_tree_node_it_<Node, Const_Iterator, Iterator, _Alloc>
132 template<
typename Node,
133 class Const_Iterator,
141 typename _Alloc::template rebind<
142 Node>::other::pointer
163 {
return Iterator(PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC::m_p_nd); }
170 PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC::m_p_nd->m_p_left);
178 PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC::m_p_nd->m_p_right);
183 #undef PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC
184 #undef PB_DS_TREE_NODE_ITERATOR_CLASS_C_DEC
189 #endif // #ifndef PB_DS_BIN_SEARCH_TREE_NODE_ITERATORS_HPP
Iterator operator*() const
Access.
Definition: node_iterators.hpp:162
PB_DS_TREE_NODE_ITERATOR_CLASS_C_DEC get_l_child() const
Returns the node iterator associated with the left node.
Definition: node_iterators.hpp:167
metadata_const_reference get_metadata() const
Metadata access.
Definition: node_iterators.hpp:102
PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC get_r_child() const
Returns the __const node iterator associated with the right node.
Definition: node_iterators.hpp:112
#define PB_DS_TREE_NODE_ITERATOR_CLASS_C_DEC
Definition: node_iterators.hpp:128
const_reference operator*() const
Access.
Definition: node_iterators.hpp:97
Const_Iterator value_type
Iterator's value type.
Definition: node_iterators.hpp:74
bin_search_tree_node_it_(const node_pointer p_nd=0)
Definition: node_iterators.hpp:156
trivial_iterator_difference_type difference_type
Difference type.
Definition: node_iterators.hpp:71
Const_Iterator const_reference
Iterator's __const reference type.
Definition: node_iterators.hpp:80
Iterator const_reference
Iterator's __const reference type.
Definition: node_iterators.hpp:153
#define PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC
Definition: node_iterators.hpp:50
Const_Iterator reference
Iterator's reference type.
Definition: node_iterators.hpp:77
Iterator value_type
Iterator's value type.
Definition: node_iterators.hpp:147
bool operator!=(const PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC &other) const
Compares (negatively) to a different iterator object.
Definition: node_iterators.hpp:122
PB_DS_TREE_NODE_ITERATOR_CLASS_C_DEC get_r_child() const
Returns the node iterator associated with the right node.
Definition: node_iterators.hpp:175
_Alloc::template rebind< Node >::other::pointer node_pointer
Definition: node_iterators.hpp:64
node_pointer m_p_nd
Definition: node_iterators.hpp:125
trivial_iterator_tag iterator_category
Category.
Definition: node_iterators.hpp:68
bool operator==(const PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC &other) const
Compares to a different iterator object.
Definition: node_iterators.hpp:117
bin_search_tree_const_node_it_(const node_pointer p_nd=0)
Definition: node_iterators.hpp:91
_Alloc::template rebind< metadata_type >::other::const_reference metadata_const_reference
Const metadata reference type.
Definition: node_iterators.hpp:88
Iterator reference
Iterator's reference type.
Definition: node_iterators.hpp:150
PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC get_l_child() const
Returns the __const node iterator associated with the left node.
Definition: node_iterators.hpp:107
Definition: tag_and_trait.hpp:75
Node iterator.
Definition: node_iterators.hpp:136
Const node iterator.
Definition: node_iterators.hpp:58
_Alloc::template rebind< Node >::other::pointer node_pointer
Definition: node_iterators.hpp:143
Node::metadata_type metadata_type
Metadata type.
Definition: node_iterators.hpp:83