不管什么类型的数组,都有一些类似的操作,因此可以使用函数模板实现代码复用。但是我在实现“查找”功能时不知道怎么处理结构体数组。要保证函数模板不仅适用于结构体数组,还适用于其他数组。求助各位大神!
#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;
}
C++中带有数组参数的函数模板是否可以实例化为结构体数组类型来进行比较等操作?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- shjyou 2014-03-16 06:02关注
out<<a[i].num<<' ';
cout<<a[i].score<<endl;
}
cout<<endl;
return 0;
}
上述代码段出现错误解决 无用评论 打赏 举报