Ciao a tutti , il codice sotto riportato dovrebbe aggiungere gli elementi di un array a una lista e poi eliminare da quest'ultima tutti i valori dispari . Non capisco perchè crasha.

codice:
int main()
{
    int ia[] ={0,1,1,2,3,5,8,13,21,55,89};

    list<int> b ;

    for(auto c :ia)           // /* Aggiungo gli interi dell'array ia
    {                        //  * alla lista b */
           b.push_back(c);   
    }

auto iter=b.begin();

while(iter!=b.end())        // /* Imposto l'iteratore iter , esso passa in rassegna
{                           //  * ogni elemento della lista . Se l'elemento è dispari
    if((*iter)%2!=0)        //  * viene eliminato. */
        b.erase(iter);
    else
        ++iter;
}

}