ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
