gpt4 book ai didi

c++ - 线性搜索类对象数组

转载 作者:太空宇宙 更新时间:2023-11-03 10:31:45 24 4
gpt4 key购买 nike

我设置了一个线性搜索算法来搜索它可以工作的类对象数组,但输出不匹配,当我在数组中搜索特定名称时,找到了数组中的第一个和第三个值,但是找不到第二个值。

下面是我的代码,感谢您的帮助。

int linsearch(string val)
{
for (int j=0; j <= 3; j++)
{
if (player[j].getLastName()==val)
return j ;
}
return 1 ;
}


void showinfo()
{
string search;
int found ;


cout << "Please Enter The Player's Last Name : " ;
cin >> search ;

found=linsearch(search);

if (found==1)
{
cout << "\n There is no player called " << search ;
}
else
{
cout << "\n First Name : " << player[found].getFirstName() << "\n" << "Last Name : " << player[found].getLastName() <<
"\n" << "Age : " << player[found].getAge() << "\n" << "Current Team : " << player[found].getCurrentTeam() <<
"\n" << "Position : " << player[found].getPosition() << "\n" << "Status : " << player[found].getStatus() << "\n\n";
}

cin.get() ;

menu() ;

}

最佳答案

因为您将第二个元素的索引用作“未找到”代码:

int linsearch(string val)
{
for (int j=0; j <= 3; j++)
{
if (player[j].getLastName()==val)
return j ;
}
return 1 ;
}

您应该返回不能作为索引的内容,例如 -1。或者更好,使用 std::find_if .

关于c++ - 线性搜索类对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14467976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com