(C++17) | ||||
Sequence | ||||
(C++11) | ||||
(C++26) | ||||
(C++26) | ||||
(C++11) | ||||
Associative | ||||
Unordered associative | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) | ||||
Adaptors | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
Views | ||||
(C++20) | ||||
(C++23) | ||||
Tables | ||||
Iterator invalidation | ||||
Member function table | ||||
Non-member function table |
iterator erase( iterator pos); | (1) | (since C++23) (constexpr since C++26) |
iterator erase( const_iterator pos); | (2) | (since C++23) (constexpr since C++26) |
iterator erase( const_iterator first, const_iterator last); | (3) | (since C++23) (constexpr since C++26) |
size_type erase(const Key& key); | (4) | (since C++23) (constexpr since C++26) |
template<class K> size_type erase( K&& x); | (5) | (since C++23) (constexpr since C++26) |
Removes specified elements from the container.The order of the remaining equivalent elements is preserved.
[
first,
last)
, which must be a valid range in*this.Compare
istransparent, and neitheriterator
norconst_iterator
is implicitly convertible fromK
. It allows calling this function without constructing an instance ofKey
.Information on iterator invalidation is copied fromhere |
The iteratorpos must be dereferenceable. Thus theend() iterator (which is valid, but is not dereferenceable) cannot be used as a value forpos.
Contents |
pos | - | iterator to the element to remove |
first, last | - | the pair of iterators defining therange of elements to remove |
key | - | key value of the elements to remove |
x | - | a value of any type that can be transparently compared with a key denoting the elements to remove |
Compare
object.This section is incomplete Reason: revision required |
#include <flat_map>#include <iostream> int main(){std::flat_multimap<int,std::string> c={{1,"one"},{2,"two"},{3,"three"},{4,"four"},{5,"five"},{6,"six"}}; // erase all odd numbers from cfor(auto it= c.begin(); it!= c.end();){if(it->first%2!=0) it= c.erase(it);else++it;} for(auto& p: c)std::cout<< p.second<<' ';std::cout<<'\n';}
Output:
two four six
clears the contents (public member function)[edit] |