41#ifdef PB_DS_CLASS_C_DEC 
   48  PB_DS_ASSERT_VALID((*
this))
 
   55      reallocate_metadata((node_update* )
this, 0);
 
   56      cond_dtor<size_type> cd(m_a_values, m_end_it, m_size);
 
   59  _GLIBCXX_DEBUG_ONLY(debug_base::clear();)
 
   62  m_end_it = m_a_values;
 
   63  PB_DS_ASSERT_VALID((*
this))
 
   67template<
typename Pred>
 
   68inline typename PB_DS_CLASS_C_DEC::size_type
 
   72  PB_DS_ASSERT_VALID((*
this))
 
   74#ifdef PB_DS_REGRESSION 
   75    typename _Alloc::group_adjustor adjust(m_size);
 
   78  size_type new_size = 0;
 
   79  size_type num_val_ersd = 0;
 
   81  for (iterator source_it = 
begin(); source_it != m_end_it; ++source_it)
 
   82    if (!pred(*source_it))
 
   93  value_vector a_new_values = s_value_alloc.allocate(new_size);
 
   94  iterator target_it = a_new_values;
 
   95  cond_dtor<size_type> cd(a_new_values, target_it, new_size);
 
   96  _GLIBCXX_DEBUG_ONLY(debug_base::clear());
 
   97  for (iterator source_it = 
begin(); source_it != m_end_it; ++source_it)
 
   99      if (!pred(*source_it))
 
  101          new (
const_cast<void*
>(
static_cast<const void*
>(target_it)))
 
  102            value_type(*source_it);
 
  104          _GLIBCXX_DEBUG_ONLY(debug_base::insert_new(PB_DS_V2F(*source_it)));
 
  109  reallocate_metadata((node_update*)
this, new_size);
 
  113    cond_dtor<size_type> cd1(m_a_values, m_end_it, m_size);
 
  116  m_a_values = a_new_values;
 
  118  m_end_it = target_it;
 
  119  update(node_begin(), (node_update*)
this);
 
  120  PB_DS_ASSERT_VALID((*
this))
 
  130  PB_DS_ASSERT_VALID((*
this))
 
  134  PB_DS_CHECK_KEY_EXISTS(PB_DS_V2F(*it))
 
  136#ifdef PB_DS_REGRESSION 
  137    typename _Alloc::group_adjustor adjust(m_size);
 
  140  _GLIBCXX_DEBUG_ASSERT(m_size > 0);
 
  141  value_vector a_values = s_value_alloc.allocate(m_size - 1);
 
  142  iterator source_it = 
begin();
 
  143  iterator source_end_it = 
end();
 
  144  iterator target_it = a_values;
 
  145  iterator ret_it = 
end();
 
  147  cond_dtor<size_type> cd(a_values, target_it, m_size - 1);
 
  149  _GLIBCXX_DEBUG_ONLY(size_type cnt = 0;)
 
  151  while (source_it != source_end_it)
 
  155          _GLIBCXX_DEBUG_ONLY(++cnt;)
 
  156          _GLIBCXX_DEBUG_ASSERT(cnt != m_size);
 
  157          new (
const_cast<void*
>(
static_cast<const void*
>(target_it)))
 
  158              value_type(*source_it);
 
  167  _GLIBCXX_DEBUG_ASSERT(m_size > 0);
 
  168  reallocate_metadata((node_update*)
this, m_size - 1);
 
  170  _GLIBCXX_DEBUG_ONLY(debug_base::erase_existing(PB_DS_V2F(*it));)
 
  172    cond_dtor<size_type> cd1(m_a_values, m_end_it, m_size);
 
  175  m_a_values = a_values;
 
  177  m_end_it = m_a_values + m_size;
 
  178  update(node_begin(), (node_update*)
this);
 
  179  PB_DS_ASSERT_VALID((*
this))
 
  186erase(key_const_reference r_key)
 
  188  point_iterator it = find(r_key);
 
_Tp * end(valarray< _Tp > &__va) noexcept
Return an iterator pointing to one past the last element of the valarray.
_Tp * begin(valarray< _Tp > &__va) noexcept
Return an iterator pointing to the first element of the valarray.