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 21: | Linia 21: | ||
{{cwiczenie|2|| | {{cwiczenie|2|| | ||
Zaimplementuj opisany na wykładzie adapter który | Zaimplementuj opisany na wykładzie adapter, który opakowuje funkcję lub funktor, ignorując zwracaną przez nie wartość i zwracający zamiast niej jakąś wartość wybranego typu. Np.: | ||
i zwracający zamiast jakąś wartość wybranego typu. | double f(int); | ||
adapt(f,7)(0); | |||
wywołuje <tt>f(0)</tt> i zwraca <tt>7</tt>. | |||
double f(int); | |||
adapt(f)(0); | |||
wywołuje <tt>f(0)</tt> i nie wraca żadnej wartości. | |||
}} | }} | ||
{{cwiczenie|3|| | {{cwiczenie|3|| | ||
Napisz iterator, który nic nie robi, ignorując przypisywane do niego elementy. | |||
}} | |||
{{cwiczenie|4|| | |||
Zaimplementuj opisany w wykładzie iterator, który działa podaną funkcją na | Zaimplementuj opisany w wykładzie iterator, który działa podaną funkcją na | ||
przypisywane obiekty. | przypisywane obiekty. | ||
}} | }} |
Wersja z 11:17, 25 wrz 2006
Ć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 opakowuje funkcję lub funktor, ignorując zwracaną przez nie wartość i zwracający zamiast niej jakąś wartość wybranego typu. Np.:
double f(int); adapt(f,7)(0);
wywołuje f(0) i zwraca 7.
double f(int); adapt(f)(0);
wywołuje f(0) i nie wraca żadnej wartości.
Ćwiczenie 3
Napisz iterator, który nic nie robi, ignorując przypisywane do niego elementy.
Ćwiczenie 4
Zaimplementuj opisany w wykładzie iterator, który działa podaną funkcją na przypisywane obiekty.