矢量<vector <point>&gt; </vector <point>的迭代器

时间:2013-10-09 00:19:51

标签: opencv vector iterator

我知道这些迭代器问题已被问过并回答了一千次,但是当我编译以下代码时,我仍然会收到此错误:

  

错误C2440:'初始化':无法转换   '的std :: _ Vector_iterator&LT; _Myvec&GT;'到'cv :: Vector&lt; _Tp&gt; *'

void iterate(vector<vector<cv::Point> >& contours){
  Vector<Vector<cv::Point>>::iterator it = contours.begin();
  for( int i = 0; i< contours.size(); i++ ){
    if(contourArea(contours[i])>1000){
        it++;
    }else{
        contours.erase(it);
    }
}
}

我认为这段代码没有任何问题。新迭代器的向量的模板类型与我从中获取迭代器的向量相同。

1 个答案:

答案 0 :(得分:0)

无法转换错误通常非常直观。通常,使用的类型可以提示您的代码中的某些内容是错误的。

这里我们使用大写的Vector类来定义迭代器,并为它分配一个小写的Vector类。

请注意,如果Vector不是真正的类,你可能会遇到不同的错误。