Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从向量中删除opencv rect对象_C++_Object_Opencv_Erase_Rect - Fatal编程技术网

C++ 从向量中删除opencv rect对象

C++ 从向量中删除opencv rect对象,c++,object,opencv,erase,rect,C++,Object,Opencv,Erase,Rect,我使用的是opencv Rect对象的向量。我想要的是删除for循环中的一些向量元素。然而,我似乎没有访问vector的erase()功能。我收到以下信息: /home/christosh/Desktop/recognition-build-Desktop-Qt_4_8_1_in_PATH_System_Release/。/faceRec/src/Detection.cpp:88:错误:“class cv::Rect_”没有名为“erase”的成员 我的代码: vector<Re

我使用的是opencv Rect对象的向量。我想要的是删除for循环中的一些向量元素。然而,我似乎没有访问vector的erase()功能。我收到以下信息:

/home/christosh/Desktop/recognition-build-Desktop-Qt_4_8_1_in_PATH_System_Release/。/faceRec/src/Detection.cpp:88:错误:“class cv::Rect_”没有名为“erase”的成员

我的代码:

     vector<Rect> faces, eyes;
     for(int l=0; l<eyes.size(); l++){
        if(eyes[l].y> faces[i].height){
            eyes[l].erase;
        }
     }
矢量人脸、眼睛;
对于(int l=0;l面[i]。高度){
眼睛[l]。擦除;
}
}

是否遗漏了括号?这是一个函数

eyes[l].erase();
编辑:看来我误解了你的问题。如果是stl::vector erase,那么您可以从下面的代码中得到提示:您必须使用迭代器

vector::iterator it=res.begin();
for(;it!=res.end();it++)
{
它=清除(它);
}

应该从向量中删除,而不是从rect中删除。请尝试删除(eyes.begin()+1);是的,非常感谢!!我明白你的意思了。这还有一个语法错误。erase是std::vector类的成员,而不是Rect。
vector<int>::iterator it = res.begin();
for( ; it != res.end(); it++)
{
    it = res.erase(it);
}