std::stable_partition
From Cppreference
| Defined in header <algorithm>
| ||
| template< class BidirectionalIterator, class UnaryPredicate >
BidirectionalIterator stable_partition( BidirectionalIterator first, BidirectionalIterator last, | ||
Reorders the elements in the range [first, last) in such a way that all elements for which the predicate p returns true precede the elements for which predicate p returns false. Relative order of the elements is preserved.
Contents |
[edit] Parameters
| first, last | - | the range of elements to reorder | |||||||||
| p | - | unary predicate which returns true if the element should be ordered before other elements. The signature of the predicate function should be equivalent to the following:
The signature does not need to have const &, but the function must not modify the objects passed to it. | |||||||||
[edit] Return value
iterator to the first element of the second group
[edit] Complexity
Exactly last-first applications of the predicate and at most (last-first)*log(last-first) swaps if there is insufficient memory or linear number of swaps if sufficient memory is available.
[edit] Equivalent function
| This section is incomplete |
[edit] Example
| This section is incomplete |
[edit] See also
| divides a range of elements into two groups (function template) | |