2 u013022927 u013022927 于 2014.03.16 12:26 提问

C++中带有数组参数的函数模板是否可以实例化为结构体数组类型来进行比较等操作?

不管什么类型的数组,都有一些类似的操作,因此可以使用函数模板实现代码复用。但是我在实现“查找”功能时不知道怎么处理结构体数组。要保证函数模板不仅适用于结构体数组,还适用于其他数组。求助各位大神!
#include
using namespace std;
#define N 10
struct stu
{
int num;
double score;
};
/*查找:查找某元素,返回其下标*/
template
int Find(ArrType a[], ElemType e)
{
int i;
for (i=0;i<N;i++)
{
if(a[i]==e)//若为结构体数组,编译不通过
return i;
}
return -1;
}
int main()
{
int i;
struct stu a[N]={2,60,1,50,3,70,5,90};
struct stu e={4,80};
Find(a,e);
for(i=0;i<N;i++)
{
cout<<a[i].num<<' ';
cout<<a[i].score<<endl;
}
cout<<endl;
return 0;
}

1个回答

u013804156
u013804156   2014.03.16 14:02

out<<a[i].num<<' ';
cout<<a[i].score<<endl;
}
cout<<endl;
return 0;
}
上述代码段出现错误

u013022927
u013022927 嗯!疏忽了。。不过第15行的代码不适用于结构体数组,请问要怎么改呢?
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!