Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

remove_if
PrevUpHomeNext
Prototype

template<
    class ForwardRange,
    class UnaryPredicate
    >
typename range_iterator<ForwardRange>::type
remove_if(ForwardRange& rng, UnaryPredicate pred);

template<
    class ForwardRange,
    class UnaryPredicate
    >
typename range_iterator<const ForwardRange>::type
remove_if(const ForwardRange& rng, UnaryPredicate pred);

template<
    range_return_value re,
    class ForwardRange,
    class UnaryPredicate
    >
typename range_return<ForwardRange,re>::type
remove_if(ForwardRange& rng, UnaryPredicate pred);

template<
    range_return_value re,
    class ForwardRange,
    class UnaryPredicate
    >
typename range_return<const ForwardRange,re>::type
remove_if(const ForwardRange& rng, UnaryPredicate pred);

Description

remove_if removes from rng all of the elements x for which pred(x) is true. The versions of remove_if that return an iterator, return an iterator new_last such that the range [begin(rng), new_last) contains no elements where pred(x) is true. The iterators in the range [new_last, end(rng)) are dereferenceable, but the elements are unspecified.

Definition

Defined in the header file boost/range/algorithm/remove_if.hpp

Requirements
  • ForwardRange is a model of the Forward Range Concept.
  • ForwardRange is mutable.
  • UnaryPredicate is a model of the PredicateConcept.
  • ForwardRange's value type is convertible to UnaryPredicate's argument type.
Complexity

Linear. remove_if performs exactly distance(rng) applications of pred.


PrevUpHomeNext