Opencv 向量迭代器<;向量<;点>&燃气轮机;
我知道这些迭代器问题已经被询问和回答了上千次,但是当我编译下面的代码时,仍然会出现以下错误: 错误C2440:“正在初始化”:无法从转换 “std::_Vector_iterator”到“cv::Vector*”Opencv 向量迭代器<;向量<;点>&燃气轮机;,opencv,vector,iterator,Opencv,Vector,Iterator,我知道这些迭代器问题已经被询问和回答了上千次,但是当我编译下面的代码时,仍然会出现以下错误: 错误C2440:“正在初始化”:无法从转换 “std::_Vector_iterator”到“cv::Vector*” void迭代(向量和轮廓){ 向量::迭代器it=contours.begin(); 对于(int i=0;i1000){ it++; }否则{ 删除(它); } } } 我看不出这个代码有什么问题。新迭代器的向量模板类型与我从中获取迭代器的向量相同。无法转换错误通常都是文字错误。
void迭代(向量和轮廓){
向量::迭代器it=contours.begin();
对于(int i=0;i1000){
it++;
}否则{
删除(它);
}
}
}
我看不出这个代码有什么问题。新迭代器的向量模板类型与我从中获取迭代器的向量相同。无法转换错误通常都是文字错误。通常,所使用的类型可以提示代码中哪里有错误 在这里,我们使用大写的
Vector
类来定义迭代器,并为其分配一个小写的Vector
类
注意,如果Vector不是实类,您可能会得到不同的错误。一个是大写,一个是小写?向量对向量?啊!谢谢就这样!我不知道向量和向量有区别!谢谢!
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);
}
}
}