| Technical Specification | ||||
| Filesystem library(filesystem TS) | ||||
| Library fundamentals(library fundamentals TS) | ||||
| Library fundamentals 2(library fundamentals TS v2) | ||||
| Library fundamentals 3(library fundamentals TS v3) | ||||
| Extensions for parallelism(parallelism TS) | ||||
| Extensions for parallelism 2(parallelism TS v2) | ||||
| Extensions for concurrency(concurrency TS) | ||||
| Extensions for concurrency 2(concurrency TS v2) | ||||
| Concepts(concepts TS) | ||||
| Ranges(ranges TS) | ||||
| Reflection(reflection TS) | ||||
| Mathematical special functions(special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
![]() | Merged into ISO C++ The functionality described on this page was merged into the mainline ISO C++ standardas of 11/2018, seestd::erase_if(since C++20) |
Defined in header <experimental/map> | ||
template<class Key,class T,class Compare,class Alloc,class Pred> void erase_if(std::multimap<Key, T, Compare, Alloc>& c, Pred pred); | (library fundamentals TS v2) | |
Erases all elements that satisfy the predicatepred from the container. Equivalent to
for(auto i= c.begin(), last= c.end(); i!= last;){if(pred(*i)) i= c.erase(i);else++i;}
Contents |
| c | - | container from which to erase |
| pred | - | predicate that determines which elements should be erased |
Linear.
#include <experimental/map>#include <iostream> template<typename Os,typename Container>inline Os& operator<<(Os& os, Containerconst& cont){ os<<'{';for(constauto& item: cont) os<<'{'<< item.first<<", "<< item.second<<'}';return os<<'}';} int main(){std::multimap<int,char> data{{1,'a'},{2,'b'},{3,'c'},{4,'d'},{5,'e'},{4,'f'},{5,'g'},{5,'g'}};std::cout<<"Original:\n"<< data<<'\n'; std::experimental::erase_if(data,[](constauto& item){return(item.first&1)==1;});std::cout<<"Erase items with odd keys:\n"<< data<<'\n';}
Output:
Original:{{1, a}{2, b}{3, c}{4, d}{4, f}{5, e}{5, g}{5, g}}Erase items with odd keys:{{2, b}{4, d}{4, f}}| removes elements satisfying specific criteria (function template)[edit] |