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 ForwardIterator, class Predicate>
  ForwardIterator partition ( ForwardIterator first,
                                    ForwardIterator last, Predicate pred );

Parametry

  • first, last - iteratory wskazujące na zakres elementów, które mają ulec podziałowi. Iterator last wskazuje jeden 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

  • ForwardIterator posiada funkcjonalność iteratora jednokierunkowego
  • Predicate udostępnia jednoargumentowy operator()
  • Typ wartości dla klasy 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.1240956605.txt.gz · ostatnio zmienione: 2009/04/29 00:10 przez pszostek