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 33: | Linia 33: | ||
} | } | ||
Kod znajduje się w pliku [ | Kod znajduje się w pliku [[media:For_each.h | for_each.h]]. | ||
</div></div> | </div></div> | ||
Linia 74: | Linia 74: | ||
adapt(F f) {return adapt_t<F,void>(f);} | adapt(F f) {return adapt_t<F,void>(f);} | ||
Kod znajduje się w pliku [ | Kod znajduje się w pliku [[media:Dev_null.h | dev_null.h]]. | ||
</div></div> | </div></div> | ||
Linia 90: | Linia 90: | ||
której operator przypisania "połyka" swój argument. | której operator przypisania "połyka" swój argument. | ||
Kod znajduje się w pliku [ | Kod znajduje się w pliku [[media:Dev_null.h | dev_null.h]]. | ||
</div></div> | </div></div> | ||
Linia 136: | Linia 136: | ||
korzystając z automatycznej dedukcji typów. | korzystając z automatycznej dedukcji typów. | ||
Kod znajduje się w pliku [ | Kod znajduje się w pliku [[media:Exec_iterator.h | exec_iterator.h]]. | ||
</div></div> | </div></div> |
Aktualna wersja na dzień 10:48, 2 paź 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); ...
Rozwiązanie
Ć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 zwraca żadnej wartości.
Rozwiązanie
Ćwiczenie 3
Napisz iterator, który nic nie robi, ignorując przypisywane do niego elementy.
Rozwiązanie
Ćwiczenie 4
Zaimplementuj opisany w wykładzie iterator, który działa podaną funkcją na przypisywane obiekty.
Rozwiązanie