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: | ||
'''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.