Slajd PPT
Wzorce funkcji (3) - przekazywanie operacji jako argumentów
VIII/*
template <class T> void sortuj(wektor<T>&, porownanie<T>& por){
unsigned int n = w.jaki_rozm();
for (int i=0; i< n-1; i++)
for(int j=n-1; i<j; j--)
if (por.mniejszy(w[j], w[j-1]) ) { //zamień w[j] i w[j-1]
T pom = w[j];
w[j]=w[j-1];
w[j-1]=pom;
}
}
//jest jeszcze wzorzec klasy porownanie jest taki sam jak //poprzednio
template<class T> porownanie{
public:
static mniejszy(T& a, T& b)
{return a<b;}
//dla char* dostarczamy specjalnš wersję porównania
class porownanie<char*> {
public:
static mniejszy(const char* a, const char* b)
{return strcmp(a, b)ɘ}
};
//a tu jest nasza funkcja korzystajšca z sortowania
void f(wektor<int> wi,
wektor<double> wd,
wektor<char*> wpc){
porownanie<int> pi;
porownanie<double> pd;
porownanie<char*> pc;
sortuj(wi, pi);
sortuj(wd, pd);
sortuj(wpc, pc);
}
Poprzedni slajd
Następny slajd
Cofnij do pierwszego slajdu
Podglšd wersji graficznej