Удаление элементов вектора внутри цикла

Я знаю, что есть вопросы, похожие на этот, но мне не удалось разобраться в моем коде по их помогать. Я просто хочу удалить / удалить элемент вектора, проверив атрибут этого элемента внутри цикла. Как я могу это сделать? Я пробовал следующий код, но получаю расплывчатое сообщение об ошибке:

функция 'operator =' недоступна в 'Player'.

 for (vector::iterator it = allPlayers.begin(); it != allPlayers.end(); it++)
 {
     if(it->getpMoney()<=0) 
         it = allPlayers.erase(it);
     else 
         ++it;
 }

Что мне делать?

Обновление: Считаете ли вы, что вопрос vector :: erase с элементом-указателем относится к той же проблеме? Нужен ли мне, следовательно, оператор присваивания? Почему?

64
задан Community 23 May 2017 в 12:10
поделиться