41#ifdef PB_DS_CLASS_C_DEC
44inline typename PB_DS_CLASS_C_DEC::point_const_iterator
46lower_bound(key_const_reference r_key)
const
48 node_pointer p_pot = m_p_head;
49 node_pointer p_nd = m_p_head->m_p_parent;
52 if (Cmp_Fn::operator()(PB_DS_V2F(p_nd->m_value), r_key))
53 p_nd = p_nd->m_p_right;
57 p_nd = p_nd->m_p_left;
59 return iterator(p_pot);
63inline typename PB_DS_CLASS_C_DEC::point_iterator
65lower_bound(key_const_reference r_key)
67 node_pointer p_pot = m_p_head;
68 node_pointer p_nd = m_p_head->m_p_parent;
71 if (Cmp_Fn::operator()(PB_DS_V2F(p_nd->m_value), r_key))
72 p_nd = p_nd->m_p_right;
76 p_nd = p_nd->m_p_left;
78 return iterator(p_pot);
82inline typename PB_DS_CLASS_C_DEC::point_const_iterator
84upper_bound(key_const_reference r_key)
const
86 node_pointer p_pot = m_p_head;
87 node_pointer p_nd = m_p_head->m_p_parent;
90 if (Cmp_Fn::operator()(r_key, PB_DS_V2F(p_nd->m_value)))
93 p_nd = p_nd->m_p_left;
96 p_nd = p_nd->m_p_right;
97 return const_iterator(p_pot);
101inline typename PB_DS_CLASS_C_DEC::point_iterator
103upper_bound(key_const_reference r_key)
105 node_pointer p_pot = m_p_head;
106 node_pointer p_nd = m_p_head->m_p_parent;
109 if (Cmp_Fn::operator()(r_key, PB_DS_V2F(p_nd->m_value)))
112 p_nd = p_nd->m_p_left;
115 p_nd = p_nd->m_p_right;
116 return point_iterator(p_pot);
120inline typename PB_DS_CLASS_C_DEC::point_iterator
122find(key_const_reference r_key)
124 PB_DS_STRUCT_ONLY_ASSERT_VALID((*
this))
125 node_pointer p_pot = m_p_head;
126 node_pointer p_nd = m_p_head->m_p_parent;
129 if (!Cmp_Fn::operator()(PB_DS_V2F(p_nd->m_value), r_key))
132 p_nd = p_nd->m_p_left;
135 p_nd = p_nd->m_p_right;
137 node_pointer ret = p_pot;
138 if (p_pot != m_p_head)
140 const bool __cmp = Cmp_Fn::operator()(r_key, PB_DS_V2F(p_pot->m_value));
144 return point_iterator(ret);
148inline typename PB_DS_CLASS_C_DEC::point_const_iterator
150find(key_const_reference r_key)
const
152 PB_DS_STRUCT_ONLY_ASSERT_VALID((*
this))
153 node_pointer p_pot = m_p_head;
154 node_pointer p_nd = m_p_head->m_p_parent;
157 if (!Cmp_Fn::operator()(PB_DS_V2F(p_nd->m_value), r_key))
160 p_nd = p_nd->m_p_left;
163 p_nd = p_nd->m_p_right;
165 node_pointer ret = p_pot;
166 if (p_pot != m_p_head)
168 const bool __cmp = Cmp_Fn::operator()(r_key, PB_DS_V2F(p_pot->m_value));
172 return point_const_iterator(ret);