итератор для указателя или ссылки - ОШИБКА - PullRequest
0 голосов
/ 10 октября 2010

У меня есть это:

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

Интересно, почему это не работает? Я получаю "Неверная инициализация ссылки типа ..."

Любая помощь будет очень ценится

Спасибо

Ответы [ 2 ]

3 голосов
/ 10 октября 2010

*track является ссылкой на const vector<Point>, поэтому у вас есть две проблемы:

1) Вы пытаетесь передать указатель на это в barycenter_of_vector_in_range, который не принимает указатель.

2) Это const, а barycenter_of_vector_in_range принимает неконстантную ссылку.

0 голосов
/ 10 октября 2010

вы передаете указатель на вектор точек вместо самого вектора (из которого компилятор косвенно берет ссылку)

...