2010-10-10 65 views
0

我有这样的:迭代器指针或引用 - 错误

//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 
} 

我不知道这是为什么不工作?我得到“referenceof类型的无效初始化......”

任何帮助将是非常赞赏

感谢

回答

3

*trackconst vector<Point>一个参考,所以你有两个问题:

1)你正试图将一个指针传递给barycenter_of_vector_in_range,它不带指针。

2)它是const,barycenter_of_vector_in_range是一个非const引用。

+0

+1我正要砸'POST'用几乎相同的答案。 – sellibitze 2010-10-10 14:04:24

+0

谢谢!我让函数接受const和*点而不是&points;) – nacho4d 2010-10-10 14:05:24

+0

@ nacho4d:或者该函数可以接受一个const引用,并且可以传递给它'* track'。 – 2010-10-10 14:06:22

0

您传递一个指针点的矢量代替矢量本身(编译器隐含为基准)