题目描述
编写一个在数组中进行查找的函数模板,其中数组为具有n个元素,类型为T,要查找的元素为key。 注意:必须使用模板函数
输入
第一行输入t表示有t个测试实例
第二行先输入一个大写字母表示数组类型,
I表示整数类型,
D表示双精度数类型,
C表示字符型,
S表示字符串型;
然后输入n表示数组长度。
第三行输入n个数据 第四行输入key
依次输入t个实例输出
每行输出一个结果,找到输出key是数组中的第几个元素(从1开始),找不到输出0
样例输入
4
I 5
5 3 51 27 9 27
D 3
-11.3 25.42 13.2 2.7
C 6
a b g e u q a
S 4
sandy david eason cindy cindy样例输出
4
0
1
4提示
#include <bits/stdc++.h>
using namespace std;
template <class T>
int search(T a[], T b, int n)
{
int t = 0;
for (int i = 0; i < n; i++)
{
if (a[i - 1] == b)
{
t = i;
}
}
return t;
}
template <class T>
void input(T a[], int n)
{
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
T c;
cin >> c;
cout << search(a, c, n) << endl;
}
int main()
{
int t, n;
cin >> t;
char a;
while (t--)
{
cin >> a >> n;
switch (a)
{
case 'I':
{
int *b = new int[n];
input(b, n);
break;
}
case 'D':
{
double *b = new double[n];
input(b, n);
break;
}
case 'C':
{
char *b = new char[n];
input(b, n);
break;
}
case 'S':
{
string *b = new string[n];
input(b, n);
break;
}
}
}
return 0;
}