Loading...
Searching...
No Matches
unstable_remove_if.hpp File Reference

## Functions

template<typename I , typename C , typename P = identity> requires bidirectional_iterator<I> && permutable<I> && indirect_unary_predicate<C, projected<I, P>>
constexpr I | ranges::unstable_remove_if (I first, I last, C pred, P proj={})
| unstable_remove have O(1) complexity for each element remove, unlike remove O(n) [for worst case]. Each erased element overwritten (moved in) with last one. unstable_remove_if does not preserve relative element order.
template<typename Rng , typename C , typename P = identity> requires bidirectional_range<Rng> && common_range<Rng> && permutable<iterator_t<Rng>> && indirect_unary_predicate<C, projected<iterator_t<Rng>, P>>
constexpr borrowed_iterator_t< Rng > | ranges::unstable_remove_if (Rng &&rng, C pred, P proj=P{})
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.