Я хочу создать функцию, которая перемещает элементы из одного списка STL в другой, если они соответствуют определенному условию.
Этот код не способ сделать это. Итератор скорее всего будет недействителен функцией erase() и вызовет проблему:
for(std::list<MyClass>::iterator it = myList.begin(); it != myList.end(); it++)
{
if(myCondition(*it))
{
myOtherList.push_back(*it);
myList.erase(it);
}
}
Так может ли кто-нибудь предложить лучший способ сделать это?