【发布时间】:2020-05-15 08:17:56
【问题描述】:
我想获取结构中元素的索引。下面是代码。但是它只返回 0 作为输出。假设我已经将数据添加到下面的结构中,函数 find_index 不返回元素的索引。它只返回 0;
struct Person{
string name;
int age;
float spread_prob;
float disease_prob;
float recover_prob;
status disease_status;
int sick_day;
};
Person person[9];
int find_index(string m){
for(i=0;i<9;i++){
if(m==person[i].name){
return i;
}
}
return 0;
}
【问题讨论】:
-
person在哪里/如何定义?你用什么称呼它?请扩展您的问题,使其成为minimal reproducible example -
代码中的大量错误,包括未定义
i、未阐明函数范围(如果主要考虑使用 lambda 访问结构)以及不必要地使用语句,例如返回 0。 -
@Anirban166 这只是我的代码的一个 sn-p,我已经在我的代码中定义了 i。该函数不在main中。
-
你确定 m 的值完全等于数组中的某个人吗?实际上 std::string::operator== 严格比较值,例如“Aileen”NOT 等于“Aileen\0”,即使您会看到它们的输出相同。
-
返回 0 作为未找到的值似乎很奇怪,因为它是一个有效的索引,所以您不知道是否未找到值,或者第一个元素是否正确。
标签: c++ indexing struct element