我有这个:
//function definition
//Point and Range are classes made of 2 ints
Point barycenter_of_vector_in_range(vector<cv::Point> &points, cv::Range range);
//In other place...
vector<vector<Point> > tracks_; //it has some content
for (vector< vector<Point> >::const_iterator track = tracks_.begin(); track != tracks_.end(); track++) {
Point barycenter = barycenter_of_vector_in_range(&(*track), Range(0, track->size())); //Compile ERROR
}
我想知道为什么这不起作用?我得到“无效的类型参考初始化...”
非常感谢任何帮助
由于
答案 0 :(得分:3)
*track
是对const vector<Point>
的引用,因此您有两个问题:
1)你试图将一个指针传递给barycenter_of_vector_in_range
,它不带指针。
2)它是const
,而barycenter_of_vector_in_range
采用非const引用。
答案 1 :(得分:0)
您正在传递一个指向点向量的指针而不是向量本身(编译器隐含地使用该引用)