7 #ifndef INCLUDE_KDTREE_ITERATOR_HPP 8 #define INCLUDE_KDTREE_ITERATOR_HPP 16 template <
typename _Val,
typename _Ref,
typename _Ptr>
19 template<
typename _Val,
typename _Ref,
typename _Ptr>
24 template<
typename _Val>
29 template<
typename _Val>
34 template<
typename _Val,
typename _Ref,
typename _Ptr>
39 template<
typename _Val>
44 template<
typename _Val>
52 typedef _Node_base::_Base_const_ptr _Base_const_ptr;
53 _Base_const_ptr _M_node;
58 : _M_node(__THAT._M_node) {}
63 if (_M_node->_M_right)
65 _M_node = _M_node->_M_right;
66 while (_M_node->_M_left) _M_node = _M_node->_M_left;
70 _Base_const_ptr __p = _M_node->_M_parent;
71 while (__p && _M_node == __p->_M_right)
74 __p = _M_node->_M_parent;
85 if (!_M_node->_M_parent)
87 _M_node = _M_node->_M_right;
89 else if (_M_node->_M_left)
91 _Base_const_ptr x = _M_node->_M_left;
92 while (x->_M_right) x = x->_M_right;
97 _Base_const_ptr __p = _M_node->_M_parent;
98 while (__p && _M_node == __p->_M_left)
101 __p = _M_node->_M_parent;
109 template <
size_t const __K,
typename _Val,
typename _Acc,
110 typename _Dist,
typename _Cmp,
typename _Alloc>
114 template <
typename _Val,
typename _Ref,
typename _Ptr>
118 typedef _Val value_type;
119 typedef _Ref reference;
120 typedef _Ptr pointer;
125 typedef std::bidirectional_iterator_tag iterator_category;
126 typedef ptrdiff_t difference_type;
130 inline _Iterator(_Link_const_type
const __N)
135 _Link_const_type get_raw_node()
const 137 return _Link_const_type(_M_node);
143 return _Link_const_type(_M_node)->_M_value;
149 return &(operator*());
207 template<
typename _Val,
typename _Ref,
typename _Ptr>
211 {
return __X._M_node == __Y._M_node; }
213 template<
typename _Val>
217 {
return __X._M_node == __Y._M_node; }
219 template<
typename _Val>
223 {
return __X._M_node == __Y._M_node; }
225 template<
typename _Val,
typename _Ref,
typename _Ptr>
229 {
return __X._M_node != __Y._M_node; }
231 template<
typename _Val>
235 {
return __X._M_node != __Y._M_node; }
237 template<
typename _Val>
241 {
return __X._M_node != __Y._M_node; }
245 #endif // include guard Definition: iterator.hpp:17
Definition: kdtree.hpp:99
Definition: iterator.hpp:49
Defines interfaces for nodes as used by the KDTree class.
Definition: allocator.hpp:14