44 erase(key_const_reference r_key)
46 PB_DS_ASSERT_VALID((*
this))
50 if (s_eq_fn(r_key, PB_DS_V2F(m_p_l->m_value)))
52 entry_pointer p_next = m_p_l->m_p_next;
53 actual_erase_entry(m_p_l);
58 entry_pointer p_l = m_p_l;
59 while (p_l->m_p_next != 0)
60 if (s_eq_fn(r_key, PB_DS_V2F(p_l->m_p_next->m_value)))
79 template<
typename Pred>
80 inline typename PB_DS_CLASS_C_DEC::size_type
84 PB_DS_ASSERT_VALID((*
this))
85 size_type num_ersd = 0;
86 while (m_p_l != 0 && pred(m_p_l->m_value))
88 entry_pointer p_next = m_p_l->m_p_next;
90 actual_erase_entry(m_p_l);
97 entry_pointer p_l = m_p_l;
98 while (p_l->m_p_next != 0)
100 if (pred(p_l->m_p_next->m_value))
109 PB_DS_ASSERT_VALID((*
this))
116 erase_next(entry_pointer p_l)
118 _GLIBCXX_DEBUG_ASSERT(p_l != 0);
119 _GLIBCXX_DEBUG_ASSERT(p_l->m_p_next != 0);
120 entry_pointer p_next_l = p_l->m_p_next->m_p_next;
121 actual_erase_entry(p_l->m_p_next);
122 p_l->m_p_next = p_next_l;
128 actual_erase_entry(entry_pointer p_l)
130 _GLIBCXX_DEBUG_ONLY(debug_base::erase_existing(PB_DS_V2F(p_l->m_value));)
132 s_entry_allocator.deallocate(p_l, 1);