指针或引用的迭代器 - 错误

时间:2010-10-10 13:59:59

标签: c++ stl iterator libstdc++

我有这个:

//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 个答案:

答案 0 :(得分:3)

*track是对const vector<Point>的引用,因此您有两个问题:

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

2)它是const,而barycenter_of_vector_in_range采用非const引用。

答案 1 :(得分:0)

您正在传递一个指向点向量的指针而不是向量本身(编译器隐含地使用该引用)