// Conditional erasing from a deque
//
std::deque<int> deq;
// Put some stuff into deq
std::deque<int>::iterator deq_current = deq.begin();
while(deq.end() != deq_current)
{
if( /* some condition */ )
deq_current = deq.erase(deq_current);
else
++deq_current;
}
// Conditional erasing from a list
//
std::list<int> li;
// Put some stuff into li
std::list<int>::iterator li_current = li.begin();
std::list<int>::iterator li_end = li.end();
while(li_end != li_current)
{
if( /* some condition */ )
li_current = li.erase(li_current);
else
++li_current;
}
End of Listing