C/C++ Урок 23. Пример шаблона функции
Вот еще конкретный пример на шаблон функции. Этот шаблон ищет в массиве определенный элемент и если такой элемент есть, то шаблон функции возвращает номер этого элемента, а если такой элемент не найден, то возвращается -1.
#include <iostream.h>
//Объявление шаблона функции.
template <class T>
int find(T *arr, T a, int n)
{
for(int i=0; i<n; i++)
{
if(arr[i]==a)
{
return i;
}
}
return -1;
}
void main()
{
//Использование шаблона функции для целых.
int z[4] = {5, 7, -2, 66};
int res;
res = find(z, 66, 4);
cout<<res<<"\n"; //Выведется 3.
//Использование шаблона функции для булевских.
bool b[3] = {true, true, true};
res = find(b, false, 3);
cout<<res<<"\n"; //Выведется -1.
}
У нашего шаблона 3 параметра: первый - это массив, в котором мы ищем наш элемент (помните, что имя массива - это указатель на нулевой элемент массива, поэтому мы и пишем T *arr), второй параметр шаблона - это искомый элемент, и третий - количество элементов в массиве.
|