Narzędzia użytkownika

Narzędzia witryny


partition

To jest stara wersja strony!


Algorytm partition

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.

Deklaracja

w pliku nagłówkowym algorithm:

template <class BidirectionalIterator, class Predicate>
  BidirectionalIterator partition ( BidirectionalIterator first,
                                    BidirectionalIterator last, Predicate pred );

Parametry

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

Zwracana wartość

Iterator na kolejny element za ostatnim, który spełniał podany predykat.

Wymagania na parametryzowane typy

* 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

Złożoność

Algorytm partition() dokonuje najwyżej (first-last)/2 zamian elementów i aplikuje podany predykat dokladnie first-last razy.

partition.1240955742.txt.gz · ostatnio zmienione: 2009/04/28 23:55 przez pszostek