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 >> |