2010-10-10 68 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

您傳遞一個指針點的矢量代替矢量本身(編譯器隱含爲基準)