1) Если вы не собираетесь изменять параметр в методе, тогда передайте константную ссылку:
int Table::addPlayer(Player const& player, int position)
Это обеспечивает скрытые преимущества последней, но также вводит концепцию правильности const.
2) Попробуйте и научитесь использовать стандартные алгоритмы:
В этом случае ваши циклы можно заменить с использованием std :: find ()
int Table::addPlayer(Player const& player, int position)
{
deque<Player>::iterator itStart = playerList.begin()+position;
deque<Player>::iterator it = std::find(itStart, playerList.end(), "(empty seat)");
if (it == playerList.end())
{
it = std::find(playerList.begin(), itStart, "(empty seat)");
if (it == itStart)
{
cout << "Table full" << endl;
return -1;
}
}
...
И
int Table::removePlayer(Player const& player)
{
deque<Player>::iterator it = std::find(playerList.begin(), playerList.end(), "(empty seat)");
if (it == playerList.end())
{
cout << "Player " << player << " not found" << endl;
return -1;
}
.....