2014-01-07 26 views
0

我正在使用opencv矩形對象的矢量。我想要的是刪除for循環中的一些向量元素。但是,似乎我沒有訪問vector的擦除()函數。我收到以下消息:從矢量中清除opencv矩形對象

/home/christosh/Desktop/recognition-build-desktop-Qt_4_8_1_in_PATH_System_Release/../faceRec/src/Detection.cpp:88: error: 'class cv::Rect_' has no member named 'erase'

我的代碼:

 vector<Rect> faces, eyes; 
    for(int l=0; l<eyes.size(); l++){ 
     if(eyes[l].y> faces[i].height){ 
      eyes[l].erase; 
     } 
    } 
+1

你應該從向量中刪除,而不是從rect中刪除。請嘗試eyes.erase(eyes.begin()+ 1); – baci

+0

絕對謝謝!我明白了你的觀點。 –

回答

2

您忘括號?這是一個功能。

eyes[l].erase(); 

編輯:似乎我誤解了你的問題。如果是stl :: vector erase,那麼你可以從下面的代碼中提示:你將不得不使用迭代器。

vector<int>::iterator it = res.begin(); 
for(; it != res.end(); it++) 
{ 
    it = res.erase(it); 
} 
+1

這有另一個語法錯誤。擦除是std :: vector類的成員,而不是Rect。 – baci