![]() |
Home | Libraries | People | FAQ | More |
template< class ForwardRange, class UnaryPredicate > typename range_iterator<ForwardRange>::type partition(ForwardRange& rng, UnaryPredicate pred); template< class ForwardRange, class UnaryPredicate > typename range_iterator<const ForwardRange>::type partition(const ForwardRange& rng, UnaryPredicate pred); template< range_return_value re, class ForwardRange, class UnaryPredicate > typename range_return<ForwardRange, re>::type partition(ForwardRange& rng, UnaryPredicate pred); template< range_return_value re, class ForwardRange, class UnaryPredicate > typename range_return<const ForwardRange, re>::type partition(const ForwardRange& rng, UnaryPredicate pred);
partition orders the
elements in rng based
on pred, such that the
elements that satisfy pred
precede the elements that do not. In the versions that return a single
iterator, the return value is the middle iterator. In the versions that
have a configurable range_return, found
corresponds to the middle iterator.
Defined in the header file boost/range/algorithm/partition.hpp
ForwardRange is a
model of the Forward
Range Concept. For C++ versions prior to C++11 the underlying
std::partition requires Bidirectional Iterators, hence the requirement
for older library versions is for a Bidirectional
Range.
UnaryPredicate is
a model of the PredicateConcept.
ForwardRange's value
type is convertible to UnaryPredicate's
argument type.
Linear. Exactly distance(rng) applications of pred,
and at most distance(rng) / 2
swaps.