Zaawansowane CPP/Ćwiczenia 12: Używanie funktorów: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
''Uwaga: przekonwertowane latex2mediawiki; prawdopodobnie trzeba wprowadzi� poprawki'' | ''Uwaga: przekonwertowane latex2mediawiki; prawdopodobnie trzeba wprowadzi� poprawki'' | ||
Linia 33: | Linia 32: | ||
Zaimplementuj opisany w wykładzie iterator, który działa podaną funkcja na | Zaimplementuj opisany w wykładzie iterator, który działa podaną funkcja na | ||
przypisywane obiekty. | przypisywane obiekty. | ||
Wersja z 13:52, 1 wrz 2006
Uwaga: przekonwertowane latex2mediawiki; prawdopodobnie trzeba wprowadzi� poprawki
{Używanie funktorów}
Zadanie 1
Napisz algorytm for_each
który działałby na dwu zakresach.
template<typename InputIterator1, typename InputIterator2, typename BinaryFunction op> BinaryFunction for_each(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, BinaryFunction op);
Algorytm ma działać tak jak standardowy for_each
, tyle że funkcja
op
ma być stosowana do par elementów:
op(*first1,*first2); op(*(first1+1),*(first2+1); ...
Zadanie 2 Zaimplementuj opisany na wykładzie adapter który opakowywuje funkcję lub funktor, ignorując zwracaną przez nie wartość i zwracający zamiast jakąś wartość wybranego typu. Napisać wersje dla funkcji jedno i dwu argumentowych. Do niego napisz iterator, który nic nie robi, ignorując przypisywane do niego elementy.
Zadanie 3 Zaimplementuj opisany w wykładzie iterator, który działa podaną funkcja na przypisywane obiekty.