Witam. Piszę program składający się z 3 klas: CAkwarium, CSlimak i CRoslina. W klasie akwarium zbudowałem vector w którym umieszczam rosliny i slimaki. Mój problem polega na usunięciu z vector elementu.
Fragmenty kodów:
//tak tworzę vector zbudowany z elementow klasy CRoslina
class CAkwarium
{
public:
int oswietlenie;
vector<CSlimak*> slimaki;
vector<CRoslina*> rosliny;
...
}
//metoda tworząca rosliny w klasie akwarium:
void CAkwarium::stworz_rosliny(int ile)
{
int i=0;
while(i<ile)
{
CRoslina* rosl=new CRoslina;
rosliny.insert(rosliny.end(), rosl);
i++ ;
};
};
Problem mam z usunięciem elementów:
Próbowałem robić to tak:
void CAkwarium::usun_rosline(int ktora)
{
CRoslina* rosl=rosliny[ktora];
rosliny.erase(rosl);
delete rosl;
};
Ale tu pojawia mi sie błąd:
[C++ Error] CAkwarium.cpp(61): E2285 Could not find a match for 'vector<CRoslina *, allocator<CRoslina *> >::erase(CRoslina *)'
Próbowałem też usuwać w poniższy sposób, ale to pomimo poprawnej kompilacji nie przyniosło efektów w głównym programie.
void CAkwarium::usun_slimaka(int ktory)
{
delete rosliny[ktory];
};
Jak poprawnie usunąć mam z vector'a element typu CRoslina.?
Za odp z góry dzięki.