2
list<employee> remove_employees(const string& name,
const string& lastname)
{
list<employee> listOfRemoved;
list<employee>::iterator it;
for(it=employees.begin(); it != employees.end();)
{
if(it->get_name() == name && it->get_lastname() ==lastname)
{
listOfRemoved.push_back(*it);
employees.erase(it);
}
else
it++;
}
return listOfRemoved;
}
我試圖從類實例變量員工中刪除一些僱員,然後返回一個新列表,只有刪除的emeployees。當我嘗試運行該程序時,它會從標題中給出錯誤。我知道這與刪除和推送有關,但我無法弄清楚。當試圖從列表中刪除一個元素時,「列表迭代器不兼容」
usluzbenci.erase(它);本來就是爲了員工。在我翻譯整件事的時候忘了它。 – Kajzer 2012-04-05 08:35:37
你能完整發布編譯器消息,包括行號嗎?我剛剛用VS2010和VS2008編譯了這個(爲'employee'添加一個簡單的'struct'後)。 '.erase()'應該在'it'中存儲返回值。 – hmjd 2012-04-05 08:44:19
調試斷言失敗。程序:.... \ vc \ include \ list \ Line:286表達式:列表迭代器不兼容 – Kajzer 2012-04-05 08:49:39