To jest stara wersja strony!
Dla podanego zakresu iteratorów algorytm partition ustawia wszystkie elementy, które spełniają podany predykat, przed elementami, ktore go nie spełniają. Algorytm nie musi zachowywać względnej kolejności elementów w kontenerze. Aby uzyskać funkcjonalność std::partition przy zachowaniu względnej kolejności elementów, należy sięgnąć do std::stable_partition.
w pliku nagłówkowym algorithm:
template <class BidirectionalIterator, class Predicate> BidirectionalIterator partition ( BidirectionalIterator first, BidirectionalIterator last, Predicate pred );
* first, last - iteratory wskazujące na zakres podziału elementów. Iterator last wskazuje jeden za element za ostatnim, ktory ma ulec przetwarzaniu. * pred - funkcja lub obiekt funkcyjny (z przeciążonym operatorem()), będący predykatem dla podziału elementów. Elementy kontenera, które spełniają predykat, zostaną ustawione na początku kontenera, na który wskazują iteratory first i last. Elementy kontenera niespełniające predykatu zostaną ustawione w kontenerze w drugiej kolejności.
Iterator na kolejny element za ostatnim, który spełniał podany predykat.
* BidirectionalIterator zachowuje się jak iterator dwukierunkowy * Predicate udostępnia jednoargumentowy operator() * Typ wartości dla BidirectionalIterator jest konwertowalny do typu argumentu operatora() dla klasy Predicate
Algorytm partition() dokonuje najwyżej (first-last)/2 zamian elementów i aplikuje podany predykat dokladnie first-last razy.