我正在使用opencv Rect对象的向量。我想要的是擦除for循环中的一些向量元素。但是,似乎我无法访问vector的erase()函数。我收到以下消息:
/ home / christosh / Desktop / recognition-build-desktop-Qt_4_8_1_in_PATH_ 系统 _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;
}
}
答案 0 :(得分:2)
你错过了括号吗?这是一个功能。
eyes[l].erase();
编辑:似乎我误解了你的问题。如果是stl :: vector erase,那么你可以从下面的代码中获取提示:你将不得不使用迭代器。
vector<int>::iterator it = res.begin(); for( ; it != res.end(); it++) { it = res.erase(it); }