Zaawansowane CPP/Ćwiczenia 12: Używanie funktorów: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwaniaLinia 1: | Linia 1: | ||
− | |||
− | |||
− | |||
− | |||
'''Zadanie 1 ''' | '''Zadanie 1 ''' | ||
− | Napisz algorytm <code><nowiki> for_each</nowiki></code> który działałby na dwu zakresach. | + | Napisz algorytm <code><nowiki>for_each</nowiki></code> który działałby na dwu zakresach. |
<nowiki>template<typename InputIterator1, | <nowiki>template<typename InputIterator1, | ||
Linia 15: | Linia 11: | ||
</nowiki> | </nowiki> | ||
− | Algorytm ma działać tak jak standardowy <code><nowiki> for_each</nowiki></code>, tyle że funkcja | + | Algorytm ma działać tak jak standardowy <code><nowiki>for_each</nowiki></code>, tyle że funkcja |
− | <code><nowiki> op</nowiki></code> ma być stosowana do par elementów: | + | <code><nowiki>op</nowiki></code> ma być stosowana do par elementów: |
<nowiki>op(*first1,*first2); | <nowiki>op(*first1,*first2); | ||
op(*(first1+1),*(first2+1); | op(*(first1+1),*(first2+1); | ||
− | ... | + | ...</nowiki> |
− | </nowiki> | ||
'''Zadanie 2 ''' Zaimplementuj opisany na wykładzie adapter który | '''Zadanie 2 ''' Zaimplementuj opisany na wykładzie adapter który |
Wersja z 09:36, 3 wrz 2006
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.