| 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/deque> | ||
template<class T,class Alloc,class Pred> void erase_if(std::deque<T, Alloc>& c, Pred pred); | (library fundamentals TS v2) | |
Erases all elements that satisfy the predicatepred from the container. Equivalent toc.erase(std::remove_if(c.begin(), c.end(), pred), c.end());.
Contents |
| c | - | container from which to erase |
| pred | - | predicate that determines which elements should be erased |
Linear.
#include <experimental/deque>#include <iostream> template<typename Os,typename Container>inline Os& operator<<(Os& os, Containerconst& container){ os<<"{ ";for(constauto& item: container) os<< item<<' ';return os<<'}';} int main(){std::deque<int> data{3,3,4,5,5,6,6,7,2,1,0};std::cout<<"Original:\n"<< data<<'\n';auto divisible_by_3=[](autoconst& x){return(x%3)==0;}; std::experimental::erase_if(data, divisible_by_3);std::cout<<"Erase all items divisible by 3:\n"<< data<<'\n';}
Output:
Original:{ 3 3 4 5 5 6 6 7 2 1 0 }Erase all items divisible by 3:{ 4 5 5 7 2 1 }| removes elements satisfying specific criteria (function template)[edit] | |
(library fundamentals 2 TS) | erases all elements equal to a specific value from astd::deque (function template)[edit] |