我获得了“Gameparty”课程的两个成员函数(我用英语翻译了所有术语) 他们使用Gameparty术语,其中包含每个Cardgames和Videogames的矢量,这些矢量也是类。
get_minPlayers / get_maxPlayers是他们班级的获取者,并为每个游戏提供最小/最大玩家数量。 if部分应删除实际游客数量无法播放的每个Cardgame / Videogame。
问题:此代码产生错误,这表明代码示例1的第一个for循环。“calculateBestCardgame()”正在使用不存在的向量。
我可以通过减少numberCardgames-1来避免此错误。这对我来说很奇怪,因为它适用于其他3个for-Loops temp_Cardgames的大小为4。
实际计算尚未实施,但不是我的问题的一部分。
感谢您的帮助!
1:
Cardgame Gameparty::calculateBestCardgame(){
vector <Cardgame> temp_Cardgames = get_availibleCardgames();
int guests = get_gaesteliste().size();
int numberCardgames = temp_Cardgames.size();
for (int i = 0; i < numberCardgames; i++){
if (temp_Cardgames[i].get_minPlayers() > guests){
temp_Cardgames.erase(temp_Cardgames.begin() + i);
}
}
numberCardgames = temp_Cardgames.size();
for (int i = 0; i < numberCardgames; i++){
if (temp_Cardgames[i].get_maxPlayers() < guests){
temp_Cardgames.erase(temp_Cardgames.begin() + i);
}
}
Cardgame bestCardgame = temp_Cardgames.back();
return bestCardgame;
}
2:
Videogame Gameparty::calculateBestVideogame(){
vector <Videogame> temp_Videogames = get_availibleVideogames();
int guests = get_guestlist().size();
int numberVideogames = temp_Videogames.size();
for (int i = 0; i < numberVideogames; i++){
if (temp_Videogames[i].get_minPlayers() > guests){
temp_Videogames.erase( temp_Videogames.begin()+i );
}
}
numberVideogames = temp_Videogames.size();
for (int i = 0; i < numberVideogames; i++){
if (temp_Videogames[i].get_maxPlayers() < guests){
temp_Videogames.erase(temp_Videogames.begin() + i);
}
}
Videogame bestVideogame = temp_Videogames.back();
return bestVideogame;
}