Witam mam oto takie zadanie:
Napisać i przetestować szablon funkcji min_maks, której parametrami są:
a) tablica porównywalnych elementów dowolnego typu (np. T ),
b) rozmiar w/w tablicy,
c) wskaźnik do funkcji (np. F) z dwoma parametrami typu T i wynikiem typu bool.
Wywołanie funkcji min_maks ma za zadanie wyznaczyć minimum albo maksimum z elementów przekazanej jej tablicy, w zależności od dostarczonej F:
a) bool mniejsze(T pierwszy, T drugi) - zwracającej true jeśli pierwszy < drugi, false w przeciwnym przypadku.
albo
b) bool wieksze(T pierwszy, T drugi) - zwracającej true jeśli pierwszy > drugi, false w przeciwnym przypadku.
I oto mój kod:
`#include <iostream>
#include<cstdio>
using namespace std;
template<typename T>
bool mniejsze(T pierwszy, T drugi)
{
if(pierwszy<drugi)
{
return true;
}
else{ return false;}
}
template<typename T>
bool wieksze(T pierwszy, T drugi)
{
if(pierwszy>drugi)
{
return true;
}
else {return false;}
}
typedef bool(*F)(int ,int);
template<typename T>
T min_maks(T arr[],T rozmiar,F funkcja(T a , T b ))
{
if(funkcja==true&&funkcja==wieksze)
{
T maks=arr[0];
for(int i=0;i<rozmiar;i++)
{if(arr[i]>maks)
{maks=arr[i];}}
return maks;
}
if(funkcja=true&&funkcja==mniejsze)
{
T min=arr[0];
for(int i=0;i<rozmiar;i++)
{if(arr[i]<min)
{min=arr[i];}}
return min;
}
}
int main()
{
int arr[] = {1,2,3};
cout<<min_maks(arr,3,wieksze(3,1));
}
Czy mogę wiedzieć jaki popełniam błąd?