cpp/algorithm/partition

@1@ Reorders the elements in the range in such a way that all elements for which the predicate  returns  precede the elements for which predicate  returns. Relative order of the elements is not preserved.

@2@ Same as, but executed according to.

Return value
Iterator to the first element of the second group.

Complexity
Given = , @1@ Exactly applications of. At most swaps if  meets the requirements of, and at most N swaps otherwise. @2@ swaps and  applications of.

Possible implementation
Implements overload preserving C++11 compatibility.