41#ifdef PB_DS_CLASS_C_DEC
44inline typename PB_DS_CLASS_C_DEC::point_iterator
46find(key_const_reference r_key)
48 node_pointer p_found = find_imp(r_key);
49 if (p_found != base_type::m_p_head)
51 return point_iterator(p_found);
55inline typename PB_DS_CLASS_C_DEC::point_const_iterator
57find(key_const_reference r_key)
const
59 const node_pointer p_found = find_imp(r_key);
60 if (p_found != base_type::m_p_head)
61 const_cast<PB_DS_CLASS_C_DEC*
>(
this)->splay(p_found);
62 return point_iterator(p_found);
66inline typename PB_DS_CLASS_C_DEC::node_pointer
68find_imp(key_const_reference r_key)
70 _GLIBCXX_DEBUG_ONLY(base_type::structure_only_assert_valid(__FILE__,
72 node_pointer p_nd = base_type::m_p_head->m_p_parent;
74 if (!Cmp_Fn::operator()(PB_DS_V2F(p_nd->m_value), r_key))
76 if (!Cmp_Fn::operator()(r_key, PB_DS_V2F(p_nd->m_value)))
78 p_nd = p_nd->m_p_left;
81 p_nd = p_nd->m_p_right;
82 return base_type::m_p_head;
86inline const typename PB_DS_CLASS_C_DEC::node_pointer
88find_imp(key_const_reference r_key)
const
90 PB_DS_ASSERT_VALID((*
this))
91 node_pointer p_nd = base_type::m_p_head->m_p_parent;
93 if (!Cmp_Fn::operator()(PB_DS_V2F(p_nd->m_value), r_key))
95 if (!Cmp_Fn::operator()(r_key, PB_DS_V2F(p_nd->m_value)))
97 p_nd = p_nd->m_p_left;
100 p_nd = p_nd->m_p_right;
101 return base_type::m_p_head;