线性搜索类对象的数组

tar*_*ino 1 c++ arrays linear-search

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

以下是我的代码谢谢你的帮助.

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() ;

}
Run Code Online (Sandbox Code Playgroud)

jua*_*nza 6

因为您使用第二个元素的索引作为"未找到"代码:

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

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