Różnice między wybraną wersją a wersją aktualną.
— |
find_first_of [2008/12/12 22:36] (aktualna) ppasznik utworzono |
||
---|---|---|---|
Linia 1: | Linia 1: | ||
+ | ====== Algorytm find_first_of ====== | ||
+ | |||
+ | Algorytm find_first_of zaimplementowany jest jako dwie przeciążone funkcje: | ||
+ | |||
+ | <code cpp> | ||
+ | template <class InputIterator, class ForwardIterator> | ||
+ | InputIterator find_first_of(InputIterator first1, InputIterator last1, | ||
+ | ForwardIterator first2, ForwardIterator last2); | ||
+ | |||
+ | template <class InputIterator, class ForwardIterator, class BinaryPredicate> | ||
+ | InputIterator find_first_of(InputIterator first1, InputIterator last1, | ||
+ | ForwardIterator first2, ForwardIterator last2, | ||
+ | BinaryPredicate comp); | ||
+ | </code> | ||
+ | |||
+ | InputIterator - to taki iterator z którego może być wyłuskany obiekt, powinien też pozwalać wskazywać na następny iterator w sekwencji. | ||
+ | |||
+ | ForwardIterator - to taki iterator, który służy do przeglądania liniowej sekwencji wartości, aczkolwiek nie potrafi działać | ||
+ | wstecz jak sama nazwa wskazuje. Doskonale nadaje się do wieloprzejściowego przeglądania danych. | ||
+ | |||
+ | Funkcje te różnią się tym, że w pierwszej domyślnym predykatem jest po prostu operator== (musi istnieć operator== dla argumentów typu | ||
+ | wyłuskanych InputIterator i ForwardIterator), a w drugim można podać własny warunek za pomocą predykatu lub funkcji. | ||
+ | |||
+ | find_first_of operuje na dwóch kontenerach, przeglądajac je za pomocą iteratorów. Dla rozróżnienia nazwe je konternerem wzorcowym i kontenerem przesukiwanym. | ||
+ | |||
+ | <code cpp>find_first_of(przeszukiwanyKontener.begin(), przeszukiwanyKontener.end(), kontener_wzorcowy.begin(), kontener_wzorcowy.end());</code> | ||
+ | |||
+ | Działa podobnie jak zwykły find z tą różnicą, że wyszukuje w zakresie wyznaczonym iteratorami kontenera wzorcowego pierwszego wystąpienia wartości | ||
+ | w kontenerze przeszukiwanym (również w jego części lub całości wyznaczonej poprzez iteratory. | ||
+ | |||
+ | Aby skorzystać z algorytmu find_first_of należy włączyć plik nagłówkowy: | ||
+ | <code cpp> #include<algorithm> </code> | ||