44 erase_entry_pointer(entry_pointer& r_p_e)
46 _GLIBCXX_DEBUG_ONLY(debug_base::erase_existing(PB_DS_V2F(r_p_e->m_value)));
48 entry_pointer p_e = r_p_e;
49 r_p_e = r_p_e->m_p_next;
51 _GLIBCXX_DEBUG_ASSERT(m_num_used_e > 0);
52 resize_base::notify_erased(--m_num_used_e);
56 template<
typename Pred>
57 inline typename PB_DS_CLASS_C_DEC::size_type
61 size_type num_ersd = 0;
62 for (size_type pos = 0; pos < m_num_e; ++pos)
64 while (m_entries[pos] != 0 && pred(m_entries[pos]->m_value))
67 entry_pointer p_next_e = m_entries[pos]->m_p_next;
68 erase_entry_pointer(m_entries[pos]);
69 m_entries[pos] = p_next_e;
72 entry_pointer p_e = m_entries[pos];
73 while (p_e != 0 && p_e->m_p_next != 0)
75 if (pred(p_e->m_p_next->m_value))
78 erase_entry_pointer(p_e->m_p_next);
85 do_resize_if_needed_no_throw();
94 for (size_type pos = 0; pos < m_num_e; ++pos)
95 while (m_entries[pos] != 0)
96 erase_entry_pointer(m_entries[pos]);
97 do_resize_if_needed_no_throw();
98 resize_base::notify_cleared();