我正在编写一个基于足球队花名册的程序。每个球员都有 Jersey 号码和等级。如果用户输入所述球员的 Jersey 号码,我想弄清楚如何删除球员的评分和 Jersey 号码。我定义了两个 int vector ,一个用于球员 Jersey 号码,另一个用于球员评分。到目前为止,这就是我的删除播放器功能。不确定我做错了什么。
void delete_player()
{
int input;
int vecSize = jersey.size();
cout << "Enter a jersey number to delete: ";
cin >> input;
for (int i = 0; i < vecSize; i++)
{
if (input == jersey[i])
{
jersey.erase(jersey.begin() + i);
rating.erase(rating.begin() + i);
}
}
}
最佳答案
您似乎使用了错误的工具来完成这项工作。看来您需要的是 std::map<jerseyNum, rating>
.像这样:
using jerseyNum = int;
using rating = int;
using playerMap = std::map<jerseyNum, rating>;
playerMap Players;
然后你可以通过做这样的事情来添加玩家:
Players [ newJerseyNum ] = newRating;
您可以通过执行以下操作删除玩家:
auto foundPlayer = Players.find(jerseyToDelete);
if (foundPlayer != Players.end())
{
Players.erase(foundPlayer);
}
关于c++ - 在 C++ 中从 vector 中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53644423/