Zaawansowane CPP/Ćwiczenia 12: Używanie funktorów
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Ćwiczenie 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); ...
Ćwiczenie 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.
Ćwiczenie 3
Zaimplementuj opisany w wykładzie iterator, który działa podaną funkcją na przypisywane obiekty.