急求!!!在C++中,如何查找一个结构体数组中的元素并返回其下标?
这样的结构体格式:structstu{intm;doublen;};我定义的结构体是structstuc[10]={1,1.5,10,10.5,2,2.5,20,20.5...
这样的结构体格式:
struct stu
{
int m; double n;
};
我定义的结构体是
struct stu c[10]={1,1.5,10,10.5,2,2.5,20,20.5,3,3.5,30,30.5,4,4.5,40,40.5,5,5.5,50,50.5};
怎么调用如下的模板函数来查找,比如10和10.5?
template <typename ArrType4,typename ArrType5>
int find(ArrType4 array3,ArrType5 element)
{
//查找某元素,返回其下标
int i;
for(i=0;i<length;i++)
if(array3[i]==element) break;
return i;
}
还是说我的函数模板写的也有问题,要改改?
求教!!!! 展开
struct stu
{
int m; double n;
};
我定义的结构体是
struct stu c[10]={1,1.5,10,10.5,2,2.5,20,20.5,3,3.5,30,30.5,4,4.5,40,40.5,5,5.5,50,50.5};
怎么调用如下的模板函数来查找,比如10和10.5?
template <typename ArrType4,typename ArrType5>
int find(ArrType4 array3,ArrType5 element)
{
//查找某元素,返回其下标
int i;
for(i=0;i<length;i++)
if(array3[i]==element) break;
return i;
}
还是说我的函数模板写的也有问题,要改改?
求教!!!! 展开
2个回答
展开全部
一定要用模板吗?
对于结构体元素查找,可能会用到根据其中几个元素来比较,或者所有元素来比较
所以最好可以专门写函数来查找
比如
int find(struct stu *array, int value)
{
int i;
for(i=0;i<length;i++)//这个length可以通过全局变量 也可以改成从参数传过来
if(array[i].m == value) break;
return i;
}
这个是查找m的
如果对于结构体查找的元素是固定的,比如值查找m,或者只有当所有元素值相等时才算找到
可以重载操作符==
对于结构体元素查找,可能会用到根据其中几个元素来比较,或者所有元素来比较
所以最好可以专门写函数来查找
比如
int find(struct stu *array, int value)
{
int i;
for(i=0;i<length;i++)//这个length可以通过全局变量 也可以改成从参数传过来
if(array[i].m == value) break;
return i;
}
这个是查找m的
如果对于结构体查找的元素是固定的,比如值查找m,或者只有当所有元素值相等时才算找到
可以重载操作符==
追问
一定要用模板呢π_π。。。有啥办法不。。。
追答
重载操作符==
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询