J'ai une fonction d'une classe "Table" qui devrait ajouter un joueur à la table. J'ai décidé que si le siège est pris, la fonction devrait essayer de passer tous les sièges et ajouter le joueur au prochain siège disponible. Comment puis-je l'implémenter dans ma fonction addPlayer
?En C++, je veux implémenter un itérateur en anneau pour une deque qui contient une classe définie personnellement
int Table::addPlayer(Player player, int position)
{
deque<Player>::iterator it;
if(playerList[position] != "(empty seat)") {
//What goes here?
}
playerList.put(player,it);
cout >> "Player " >> player.toString >> " sits at position " >> position >> endl;
}
Merci Patrick. Est-ce que votre premier bloc de code est légal en C++? Puis-je ajouter un int à un itérateur, puis l'affecter à un itérateur? – user83
Dans le cas d'un itérateur à accès aléatoire, oui. Pour plus d'informations, voir http://www.cplusplus.com/reference/std/iterator/RandomAccessIterator/ – Pieter
@George: oui, aussi longtemps que l'itérateur supporte 'operator + (int)'. Les itérateurs à accès aléatoire doivent le faire (la surcharge réelle est pour 'difference_type', mais int convertit implicitement) et deque doit avoir un itérateur à accès aléatoire. –