Est-ce que je peux enlever des éléments de std :: list, quand j'y vais?

Puis-je supprimer des éléments de std::list, quand je suis en itérant sur elle? Par exemple:

std::list<int> lst;
//....
for (std::list<int> itr = lst.begin(); itr != lst.end(); itr++)
{
    if (*itr > 10)
         lst.remove(*itr);
}

?
Et pourquoi?

source d'informationauteur Siarhei Fedartsou | 2010-11-23