>>387
こんなもんかな。

//ファンクタを用意
#include <functional>
struct comp_val : public std::binary_function<const int*,int,bool> {
bool operator() ( const int* ptr, int val ) { return *ptr < val; }
};

//後ろから検索して初めて見つかった5未満の要素より後ろのものを削除
value_list.erase( std::find_if( value_list.rbegin(), value_list.rend(),
std::bind2nd(comp_val(),5) ).base(), value_list.end() );