각 루프마다 새로운 C++ 11을 사용하여 목록의 모든 요소를 반복하고 certains 요소를 지우고 싶습니다. 예를 들어각 루프마다 C++ 11에서 std :: list의 요소를 지울 수 있습니까?
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
}
}
는 각 for 루프를 사용하여이 작업을 수행하기 위해 또는 내가 이것을 실현하려 반복자로 돌아 가야 할 수 있습니까?
왜 remove_if/erase를 사용할 수 없습니까? –
또는 단지'list :: remove_if', 반복기 필요 없음. –
@ KarthikT and @BenjaminLindley : 미안하지만, 내 질문에 언급하지 않았다. 나는 조건을 충족시키는 요소들과 모든 다른 요소들과 함께 몇 가지 것들을하고 싶다. 아마 이것을'list :: remove_if'에 의해 사용 된 Predicate 함수에 넣을 수 있습니다 만, 그렇게 좋지는 않습니다. – Haatschii