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
}

なぜこれが機能しないのだろうか?「参照型の初期化が無効です...」というメッセージが表示されます

どんな助けでも大歓迎です

ありがとう

4

2 に答える 2

3

*trackへの参照const vector<Point>であるため、次の 2 つの問題があります。

1) へのポインタを に渡そうとしていますがbarycenter_of_vector_in_range、これはポインタを受け取りません。

2) でconstあり、barycenter_of_vector_in_rangeconst 以外の参照を取ります。

于 2010-10-10T14:03:12.533 に答える
0

ベクトル自体ではなく、ポイントのベクトルへのポインターを渡しています(コンパイラーは暗黙的に参照を取得します)

于 2010-10-10T14:03:52.063 に答える