我知道這個問題有類似的問題,但我沒有設法通過他們的幫助找到我的代碼的方式。我只想通過在循環內檢查此元素的屬性來刪除/刪除矢量的元素。我怎樣才能做到這一點?我嘗試了下面的代碼,但收到錯誤的模糊消息:刪除循環中的矢量元素
'operator ='功能在'Player'中不可用。
for (vector<Player>::iterator it = allPlayers.begin(); it != allPlayers.end(); it++)
{
if(it->getpMoney()<=0)
it = allPlayers.erase(it);
else
++it;
}
我該怎麼辦?
更新:您認爲vector::erase with pointer member問題屬於同一問題嗎?我是否需要一個賦值操作符?爲什麼?
請注意,使用std :: remove_if可能會好很多。請參閱[this](http://lazarenko.me/2013/01/14/erasing-vector-the-smart-way/)帖子瞭解詳情。 – 2013-01-14 15:12:34
使用[this](http://stackoverflow.com/questions/347441/erasing-elements-from-a-vector)文章中描述的擦除/刪除習慣用法。 – 2017-04-01 14:33:25