std::list<int*> value_list;
といった形で値のリストを保持しているのですが、これを後ろから5以上
の場合だけ削除し、5未満が出た場合は中断するといった場合
bool isstop = false;
std::list<int*>::iterator it;
for (it = value_list.end(); it != value_list.begin(); --it) {
 if (*it >= 5) {
  delete *it;
  value_list.erase(it);
 } else {
  isstop = true;
  break;
 }
}
if (!isstop) {
 it = value_list.begin();
 delete *it;
 value_list.erase(it);
}
これ以外に一度のforですますような方法はありますか?
スレ違いでしたら申し訳ないのですが誘導お願いします。