Mam problem z takim oto kodem
#include <iostream>
using namespace std;
#include <cstdlib>
#include <list>
list<int>lista;
int main()
{
list<int>::iterator it;
int liczba;
cin >> liczba;
for(int i=1;i<=liczba;++i)
{
lista.push_back(i);
}
it=lista.begin();
++it; // ustawiam liste na 2 element
while(lista.size()>1)
{
it = lista.erase(it);
++it;
if(it==lista.end())
{
it=lista.begin();
}
}
it = lista.begin();
cout << "\n" << *it << "\n";
system("pause");
}
Moze opisze slownie o co chodzi. A wiec podajemy liczbe ile ma byc elementow w liscie nastepnie program dodaje elementy 1,2...liczba do listy. Ustawiam liste na 2 element. Wchodze do petli while. Usuwam ten element (czyli 2) element kolejny czyli 3 zostawiam i przechodze do 4 i ja usuwam itd az w koncu dojde do konca listy i wracam na poczatek. Calosc powtarzam az zostanie mi 1 element. Tylko ze wyskakuje mi blad List iterator not incrementable
Jak to rozwiazac bo mecze sie juz dlugo nad tym kawalkiem kodu i bez efektow