(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 |
std::map
Member functions | |||||||||||||||||||||||||||
Non-member functions | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Deduction guides(C++17) |
Defined in header <map> | ||
(since C++20) (constexpr since C++26) | ||
Erases all elements that satisfy the predicatepred fromc.
Equivalent to
auto old_size= c.size();for(auto first= c.begin(), last= c.end(); first!= last;){if(pred(*first)) first= c.erase(first);else++first;}return old_size- c.size();
Contents |
c | - | container from which to erase |
pred | - | predicate that returnstrue if the element should be erased |
The number of erased elements.
Linear.
#include <iostream>#include <map> void println(auto rem,constauto& container){std::cout<< rem<<'{';for(char sep[]{0,' ',0};constauto&[key, value]: container)std::cout<< sep<<'{'<< key<<", "<< value<<'}',*sep=',';std::cout<<"}\n";} int main(){std::map<int,char> data{{1,'a'},{2,'b'},{3,'c'},{4,'d'},{5,'e'},{4,'f'},{5,'g'},{5,'g'},}; println("Original:\n", data); constauto count=std::erase_if(data,[](constauto& item){constauto&[key, value]= item;return(key&1)==1;}); println("Erase items with odd keys:\n", data);std::cout<< count<<" items removed.\n";}
Output:
Original:{{1, a}, {2, b}, {3, c}, {4, d}, {5, e}}Erase items with odd keys:{{2, b}, {4, d}}3 items removed.
removes elements satisfying specific criteria (function template)[edit] | |
(C++20)(C++20) | removes elements satisfying specific criteria (algorithm function object)[edit] |