Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::unstable_remove_if_fn Struct Reference

Description

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.

Public Member Functions

template<typename I , typename C , typename P = identity>
auto operator() (I first, I last, C pred, P proj={}) const -> I requires bidirectional_iterator< I > &&permutable< I > &&indirect_unary_predicate< C, projected< I, P >>
 
template<typename Rng , typename C , typename P = identity>
auto operator() (Rng &&rng, C pred, P proj=P{}) const -> safe_iterator_t< Rng > requires bidirectional_range< Rng > &&common_range< Rng > &&permutable< iterator_t< Rng >> &&indirect_unary_predicate< C, projected< iterator_t< Rng >, P >>