我想爲每個循環使用新的C++ 11來迭代列表中的所有元素並擦除某些元素。例如是否有可能在每個循環中清除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
}
}
是否有可能做到這一點使用每個循環或者我得回去了迭代器來實現這一目標?
爲什麼不能使用remove_if/erase? –
或者只是'list :: remove_if',不需要迭代器。 –
@KarthikT和@BenjaminLindley:對不起,我沒有提到我的問題。我想用滿足條件的元素和其他所有元素來做一些事情。我可能會把它放到'list :: remove_if'使用的Predicate函數中,但我覺得這不是很好。 – Haatschii