Witam ponownie :)
Mam 2 kontenery:
a) jeden zawiera wszystkie checkboxy
b) drugi zawiera checkboxy "kliknięte"
Pisze funkcję usuwającą wszystkie elementy, które zaznaczyliśmy.
void CreateVList::ElementDeleteSelected(){
vector<CreateVCheckBox *>::iterator it = Lista_Zaznaczone.begin();
while(it != Lista_Zaznaczone.end())
{
if(*it != NULL)
ElementDelete(*it);
++it;
}
}
oraz
bool CreateVList::ElementDelete(CreateVCheckBox *wsk){
if(!wsk)
return false;
vector<CreateVCheckBox *>::iterator it = Lista.begin();
while(it != Lista.end())
{
if(*it == wsk)
{
wsk->Destroy();
Lista.erase(it);
it = Lista_Zaznaczone.begin();
while(it != Lista_Zaznaczone.end())
{
if(*it == wsk)
Lista_Zaznaczone.erase(it);
++it;
}
return true;
}
++it;
}
return false;
}
Program mi się jednak wysypuje. Próbuje dojść czemu i jest w sumie w pewnej kwestii dla mnie niejasna sytuacja.
a. Mam elementy 1 2 3 4 5.
b. Iterator wskazuje na element 3.
c. Usuwam element 2.
Na który element wskazuje iterator???
2. ---------
a. Mam elementy 1 2 3 4 5.
b. Iterator wskazuje na element 3.
c. Usuwam element 3.
Na który element wskazuje iterator???