}
iterator
- insert(const_iterator, const value_type& __obj)
+ insert(const_iterator __hint, const value_type& __obj)
{
- typedef std::pair<_Base_iterator, bool> __pair_type;
- __pair_type __res = _Base::insert(__obj);
- return iterator(__res.first, this);
+ __glibcxx_check_insert(__hint);
+ return iterator(_Base::insert(__hint.base(), __obj), this);
}
std::pair<iterator, bool>
}
iterator
- insert(const_iterator, value_type&& __obj)
+ insert(const_iterator __hint, value_type&& __obj)
{
- typedef std::pair<typename _Base::iterator, bool> __pair_type;
- __pair_type __res = _Base::insert(std::move(__obj));
- return iterator(__res.first, this);
+ __glibcxx_check_insert(__hint);
+ return iterator(_Base::insert(__hint.base(), std::move(__obj)), this);
}
void
{ return iterator(_Base::insert(__obj), this); }
iterator
- insert(const_iterator, const value_type& __obj)
- { return iterator(_Base::insert(__obj), this); }
+ insert(const_iterator __hint, const value_type& __obj)
+ {
+ __glibcxx_check_insert(__hint);
+ return iterator(_Base::insert(__hint.base(), __obj), this);
+ }
iterator
insert(value_type&& __obj)
{ return iterator(_Base::insert(std::move(__obj)), this); }
iterator
- insert(const_iterator, value_type&& __obj)
- { return iterator(_Base::insert(std::move(__obj)), this); }
+ insert(const_iterator __hint, value_type&& __obj)
+ {
+ __glibcxx_check_insert(__hint);
+ return iterator(_Base::insert(__hint.base(), std::move(__obj)), this);
+ }
void
insert(std::initializer_list<value_type> __l)
erase(const key_type& __key)
{
size_type __ret(0);
- _Base_iterator __victim(_Base::find(__key));
- if (__victim != _Base::end())
+ std::pair<_Base_iterator, _Base_iterator> __pair =
+ _Base::equal_range(__key);
+ for (_Base_iterator __victim = __pair.first; __victim != __pair.second;)
{
this->_M_invalidate_if(_Equal(__victim));
- _Base::erase(__victim);
- __ret = 1;
+ _Base::erase(__victim++);
+ ++__ret;
}
return __ret;
}