ВУЗ:
Составители:
Рубрика:
25
};
В специальном варианте для указателей на строки это определение выглядит
так:
class Comparator {
public:
typedef char* T;
static int lessthan(T a, T b) {
return strcmp(a,b) < 0;
}
// ...
};
После этих изменений можно убрать параметр, задающий тип элемента,
из класса Sort:
template class Sort {
public:
static void sort(Vector&);
};
Теперь можно использовать сортировку так:
void f(Vector& vi,
Vector& vc,
Vector& vi2,
Vector& vs)
{
Sort< int,Comparator >::sort(vi);
Sort< String,Comparator >:sort(vc);
Sort< int,Comparator >::sort(vi2);
Sort< char*,Comparator >::sort(vs);
}
и определить функцию sort() следующим образом:
template
void Sort::sort(Vector& v)
{
for (int i=0; i T sqrt(t);
void f(int i, double d, complex z)
{
complex z1 = sqrt(i); // sqrt(int)
complex z2 = sqrt(d); // sqrt(double)
complex z3 = sqrt(z); // sqrt(complex)
// ...
25 }; В специальном варианте для указателей на строки это определение выглядит так: class Comparator { public: typedef char* T; static int lessthan(T a, T b) { return strcmp(a,b) < 0; } // ... }; После этих изменений можно убрать параметр, задающий тип элемента, из класса Sort: template class Sort { public: static void sort(Vector&); }; Теперь можно использовать сортировку так: void f(Vector& vi, Vector& vc, Vector& vi2, Vector& vs) { Sort< int,Comparator >::sort(vi); Sort< String,Comparator >:sort(vc); Sort< int,Comparator >::sort(vi2); Sort< char*,Comparator >::sort(vs); } и определить функцию sort() следующим образом: template void Sort::sort(Vector& v) { for (int i=0; i T sqrt(t); void f(int i, double d, complex z) { complex z1 = sqrt(i); // sqrt(int) complex z2 = sqrt(d); // sqrt(double) complex z3 = sqrt(z); // sqrt(complex) // ...
Страницы
- « первая
- ‹ предыдущая
- …
- 23
- 24
- 25
- 26
- 27
- …
- следующая ›
- последняя »