std::stable_partition

From Cppreference

Jump to: navigation, search
Defined in header <algorithm>

template< class BidirectionalIterator, class UnaryPredicate >

BidirectionalIterator stable_partition( BidirectionalIterator first, BidirectionalIterator last,

                                        UnaryPredicate p );

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

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:

bool pred(const Type &a);

The signature does not need to have const &, but the function must not modify the objects passed to it.
The type ​Type​ must be such that an object of type ​BidirectionalIterator​ can be dereferenced and then implicitly converted to ​Type​. ​

Return value

iterator to the first element of the second group

Equivalent function

Example

Complexity

linear in the distance between first and last

See also

partition
divides a range of elements into two groups
(function template)
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
In other languages