использовать remove_if.
C ++ 11
contours.erase(
std::remove_if(contours.begin(), contours.end(),
[&](const Vector<Point>& vp){
return vp.empty();
}),
contours.end());
C ++ 03
struct is_empty
{
bool operator()(const Vector<Point>& vp) constt;
{
return vp.empty();
}
}
contours.erase(
std::remove_if(contours.begin(), contours.end(),
is_empty,
contours.end());