Voglio usare il nuovo C++ 11 per ogni ciclo per scorrere tutti gli elementi di un elenco e cancellare elementi di determinati. Per esempioE 'possibile cancellare elementi di uno std :: list in un C++ 11 per ogni ciclo
std::list<int> myList;
myList.push_back(1);
myList.push_back(13);
myList.push_back(9);
myList.push_back(4);
for(int element : myList) {
if(element > 5) {
//Do something with the element
//erase the element
}else{
//Do something else with the element
}
}
E 'possibile farlo utilizzando la per ogni ciclo o devo tornare a iteratori per raggiungere questo obiettivo?
perché non puoi usare remove_if/erase? –
O semplicemente 'list :: remove_if', nessun iteratore necessario. –
@KarthikT e @BenjaminLindley: Scusa, non ho menzionato nella mia domanda. Voglio fare qualcosa con gli elementi che soddisfano la condizione e anche con tutti gli altri. Probabilmente potrei inserire questo nella funzione di predicato usata da 'list :: remove_if', ma trovo che non sia molto bello. – Haatschii