In C++ using std::list, this is a simple matter of erasing what an iterator is pointing to (the erase statement returns the next valid member of the list).
What's the best way to iterator through a list and remove members that match a certain criteria?