std::multiset::erase

From cppreference.com

void erase( iterator pos );
iterator erase( const_iterator pos );
(1) (until C++11)
(since C++11)
void erase( iterator first, iterator last );
iterator erase( const_iterator first, const_iterator last );
(2) (until C++11)
(since C++11)
size_type erase( const key_type& key );
(3)

Removes specified elements from the container.

1) Removes the element at pos.
2) Removes the elements in the range [first; last).
3) Removes all elements with the key value key

References and iterators to the erased elements are invalidated. Other references and iterators are not affected.

Contents

[edit] Parameters

pos - iterator to the element to remove
first, last - range of elements to remove
key - key value of the elements to remove

[edit] Return value

1-2) Iterator following the last removed element.
3) Number of elements removed.

[edit] Notes

All iterators (pos, first, last) must be valid and dereferenceable, that is, the end() iterator (which is valid, but is not dereferencable) cannot be used.

[edit] Complexity

Given an instance c of multiset:

1) Amortized constant
2) log(c.size()) + std::distance(first, last)
3) log(c.size()) + c.count(k)

[edit] See also

clears the contents
(public member function)