Chcę użyć nowego C++ 11 dla każdej pętli do iteracji nad wszystkimi elementami listy i wymazywania elementów certyfikatów. Na przykład:Czy jest możliwe, aby usunąć elementy std :: list w C++ 11 dla każdej pętli
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
}
}
Czy można to zrobić za pomocą każdej pętli lub czy muszę powrócić do iteratorów, aby to osiągnąć?
dlaczego nie możesz użyć remove_if/erase? –
Lub po prostu 'list :: remove_if', nie potrzebne iteratory. –
@KarthikT i @BenjaminLindley: Przepraszam, nie wspominałem o moim pytaniu. Chcę zrobić coś z elementami, które spełniają warunek, a także z wszystkimi innymi. Prawdopodobnie mógłbym umieścić to w funkcji predykatu używanej przez 'list :: remove_if', ale uważam, że nie jest to zbyt miłe. – Haatschii