set.        *  @param  __position  An iterator pointing to the element to be erased.        *  @return An iterator pointing to the element immediately following        *          @a __position prior to the element being erased. If no such        *          element exists, end() is returned.        *        *  This function erases an element, pointed to by the given iterator,        *  from an %unordered_multiset.        *        *  Note that this function only erases the element, and that if the        *  element is itself a pointer, the pointed-to memory is not touched in        *  any way.  Managing the pointer is the user's responsibility.        */       iterator       erase(const_iterator __position)       { return _M_h.erase(__position); }        // LWG 0000.       iterator       erase(iterator __it)       { return _M_h.erase(__it); }       //@}         /**        *  @brief Erases elements according to the provided key.        *  @param  __x  Key of element to be erased.        *  @return  The number of elements erased.        *        *  This function erases all the elements located by the given key from        *  an %unordered_multiset.        *        *  Note that this function only erases the element, and that if the        *  element is itself a pointer, the pointed-to memory is not touched in        *  any way.  Managing the pointer is the user's responsibility.        */       size_type       erase(const key_type& __x)       { return _M_h.erase(__x); }        /**        *  @brief Erases a [__first,__last) range of elements from an        *  %unordered_multiset.        *  @param  __first  Iterator pointing to the start of the range to be        *                  erased.        *  @param __last  Iterator pointing to the end of the range to        *                be erased.        *  @return The iterator @a __last.        *        *  This function erases a sequence of elements from an        *  %unordered_multiset.        *        *  Note that this function only erases the element, and that if        *  the element is itself a pointer, the pointed-to memory is not touched        *  in any way.  Managing the pointer is the user's responsibility.        */       iterator       erase(const_iterator __first, const_iterator __last)       { return _M_h.erase(__first, __last); }        /**        *  Erases all elements in an %unordered_multiset.        *        *  Note that this function only erases the element