Mam problem z programem, który ma mi usuwać z listy osobę o szukanym ID. Jednak program się wywala, okienko CodeBlocks się zamyka i pokazuje jakiś numer błędu. Co jest źle ?
#include <list>
#include <string>
#include <iostream>
using namespace std;
class Osoba
{
public :
string nazwisko;
int id;
Osoba(int i, string n) {nazwisko = n; id = i; }
int ID() {return id;}
string N() {return nazwisko;}
};
int main()
{
list<Osoba*> w;
Osoba *o = new Osoba(23, "Jan");
Osoba *o1 = new Osoba(37, "Karol");
w.push_back(o);
w.push_back(o1);
list<Osoba*>::iterator i = w.begin();
for( ; i!= w.end(); i++ )
cout << (*i)->N() << " " << (*i)->ID() << "\n";
i = w.begin();
int szukane = 23;
for( ; i!= w.end(); i++ ){
if((*i)->ID()== szukane){
w.remove(o);
}
}
i = w.begin();
for( ; i!= w.end(); i++ )
cout << (*i)->N() << " " << (*i)->ID() << "\n";
return 0;
}