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