Zaawansowane CPP/Ćwiczenia 8: Metaprogramowanie
Z Studia Informatyczne
< Zaawansowane CPP(Przekierowano z Zaawansowane CPP/Ćwiczenia 9: Metaprogramowanie)
Przejdź do nawigacjiPrzejdź do wyszukiwaniaĆwiczenie 1
Napisz szablon funkcji lub klasy wyliczający funkcję silnia:
Rozwiązanie
Ćwiczenie 2
Zaimplementuj szablon Pow<N,M>
obliczający
. Np.:
Pow<3,4>::val;
powinno mieć wartość 81.
Rozwiązanie
Ćwiczenie 3
Wymyśl i zaimplementuj jako metaprogram szybszy algorytm funkcji pow(x)
.
Podpowiedź
Rozwiązanie
Ćwiczenie 4
Napisz szablon generujący pierwsze
wyrazów rozwinięcia funkcji :Możesz skorzystać z rozwiązań wcześniejszych zadań.
Rozwiązanie
Ćwiczenie 5
Napisz szablon generujący funkcję implementującą iloczyn skalarny dwu wektorów:
template<size_t N> double inner(double *x, double *y);
Parametrem szablonu ma być dlugość mnożonych wektorów.
Ćwiczenie 6
Rozszerz powyższy szablon tak, aby również typ elementów wektora był parametrem szablonu:
template<size_t N, typename T> T dot(T *x, T *y);
Podpowiedź
Rozwiązanie
Ćwiczenie 7
Napisz szablon generujący funkcję implementującą iloczyn macierzy
i wektora o elementach:void matrix_v<N>(double *A,double *v,double *u)
Tablica
jest reprezentowana w pamięci zgodnie z konwencją , tzn. wiersz po wierszu: elementowi odpowiada .Rozwiązanie