コードに問題があり、誰かが見てくれるかどうか疑問に思っていました。配列から特定の要素を削除するために作成した関数があります。線形検索を使用して要素を見つけ、要素を具体的に削除する方法が見つからないため、削除したい要素を次の要素で上書きします。私の問題は、要素が上書きされないため、コードが実際には機能しないことです。また、要素が上書きされた後に配列に空白を残す方法もあります。
以下は私のコードです:
void deleteinfo()
{
string search ;
int found ;
cout << "\n Delete A Player's Information \n\n" ;
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
{
player[found].getFirstName() = player[found + 1].getFirstName() ;
player[found].getLastName() = player[found + 1].getLastName() ;
player[found].getAge() == player[found + 1].getAge() ;
player[found].getCurrentTeam() = player[found + 1].getCurrentTeam() ;
player[found].getPosition() = player[found + 1].getPosition() ;
player[found].getStatus() = player[found + 1 ].getStatus() ;
cout << "\n Player has been deleted." ;
}
cin.get() ;
menu() ;
}
int linsearch(string val)
{
for (int j=0; j <= 3; j++)
{
if (player[j].getLastName()==val)
return j ;
}
return -1 ;
}