0
我使用OpenCV庫與C++,我試圖來計算它們包含在vector<Point2f> difference
用法積累了自定義對象
點類有是float
x屬性點的總和。
float pointSumX(Point2f pt1,Point2f pt2)
{
return (pt1.x + pt2.x);
}
我定義了上面的函數,並從下面顯示的累積中調用它。但它會引發錯誤。
float avgMotionX = accumulate(difference.begin(),difference.end(),0,pointSumX);
錯誤是:
error: could not convert ‘__init’ from ‘int’ to ‘cv::Point_’ __init = __binary_op(__init, *__first);
注:我使用C++ 11
謝謝。它現在有效。在函數中const和&的原因是什麼? – Bhoke
@Bhoke:避免複製:通過const引用而不是按值傳遞。 (對於'Point2f',由於類很小,所以它可能會有爭議,但默認情況下是通過const引用而不是按值傳遞對象)。 – Jarod42