Я использую вектор объектов Rect opencv. То, что я хочу, это стереть некоторые элементы векторов внутри цикла for. Однако, похоже, что у меня нет доступа к функции erase () вектора. Я получаю следующее сообщение:
/ Главный / christosh / Desktop / распознавание-сборка-настольный Qt_4_8_1_in_PATH_система_Release /../ faceRec / src / Detection.cpp: 88: ошибка: у класса 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;
}
}
Вы пропустили скобки? Это функция.
eyes[l].erase();
Изменить: Кажется, я неправильно понял ваш вопрос. Если is stl :: vector erase, вы можете взять подсказку из кода ниже: Вам нужно будет использовать итератор.
vector<int>::iterator it = res.begin(); for( ; it != res.end(); it++) { it = res.erase(it); }
Других решений пока нет …