0
으로 축적, 나는 float
이다 x 속성을 가지고 vector<Point2f> difference
사용 내가 C++과 OpenCV의 라이브러리를 사용하고 사용자 정의 개체
Point 클래스에 포함 된 포인트의 합계를 계산하기 위해 노력하고 있습니다.
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);
참고 : 나는 lhs
로
float pointSumX(float lhs, const Point2f& rhs)
{
return lhs + rhs.x;
}
가 누적입니다해야한다 C++ 11
감사합니다. 이제 작동합니다. const 및 함수의 이유는 무엇입니까? – Bhoke
@Bhoke : 복사본을 피하려면 값 대신 const 참조를 전달하십시오. ('Point2f'에 대해서는, 클래스가 작기 때문에 논쟁의 여지가 있지만 기본적으로 value가 아닌 const 참조로 객체를 전달합니다. – Jarod42