У меня есть вектор, который содержит объект, и я хочу удалить какой-то особенный объект, и моя программа просто аварийно завершает работу с сообщением «Процесс завершен с кодом выхода 0» в моей строке «delete (* iter)», и у меня нет никакого идея почему
void killHero(Hero* hero,vector<Hero*>& players)
{
std::vector<Hero*> ::iterator iter;
int count = 0;
for(iter=players.begin(); iter!=players.end();++iter) {
Hero *h = *iter;
if (h->getName() == hero->getName()) {
delete *iter;
players.erase(iter);
vecorSize--;
}
}
}
мой вектор содержит:
void createNewGame(vector<Hero*> &players,int warriors, int thieves, int necromancers)
{
string nameOfwarrior="";
for(int i=0; i<warriors; i++)
{
cout << "Please insert warrior number "<< i+1 << " name:"<<endl;
std::getline(cin,nameOfwarrior);
try
{
digitCheck(nameOfwarrior);
Warrior *warr = new Warrior(nameOfwarrior);
players.push_back(warr);
}
catch(GameException& e )
{
e.error();
i--;
}
}
for(int i=0; i<thieves; i++)
{
cout << "Please insert thief number "<< i+1 << " name:"<<endl;
std::getline(cin,nameOfwarrior);
try
{
digitCheck(nameOfwarrior);
Thief* thief = new Thief(nameOfwarrior);
players.push_back(thief);
}
catch(GameException& e)
{
e.error();
i--;
}
}
for(int i=0; i<necromancers; i++)
{
cout << "Please insert necromancer number "<< i+1 << " name:"<<endl;
std::getline(cin,nameOfwarrior);
try
{
digitCheck(nameOfwarrior);
Necromancer* necro = new Necromancer(nameOfwarrior);
players.push_back(necro);
}
catch(GameException& e)
{
e.error();
i--;
}
}
}
что может решить проблему?
спасибо