itc = contours.erase(itc);报错

//移除过长或过短的轮廓
int cmin= 100;//最小轮廓长度
int cmax = 1000;//最大轮廓长度

std::vector >::const_iterator itc = contours.begin();
//std::vector>::const_iterator itc= contours.begin();
while(itc!=contours.end())
{
    if(itc->size() size() >cmax)
        //变量的类型不对
        itc = contours.erase(itc);
    else
        ++itc;
}

gcc对于const_iterator的erase,还没有实现,我看了vector的头文件,发现也只有non-const iterator版本的。在stackoverflow上有个相同的问题,lz可以看一看。http://stackoverflow.com/questions/19559235/stdvectorerase-and-const-iterators-with-g

目前未解决。

你可能感兴趣的:(itc = contours.erase(itc);报错)