调用'(std :: vector <foo>)(std :: vector <foo> :: iterator&amp;)'</foo> </foo>

时间:2012-04-19 10:43:33

标签: c++ vector iterator

我有一个类foo,并使用此代码为其创建了一个向量

std::vector<foo> fooVector;

我还有一个使用此代码的迭代器

std::vector<foo>::iterator locator;

现在我收到此错误

foo.cpp:29:25: error: no match for call to ‘(std::vector<foo>) (std::vector<foo>::iterator&)’

,相应的行是

if(fooVector(locator).getBoo() + (insertBar.geBoo()) < 4000)

据我所知,我正确使用了迭代器?

我不确定我如何使用它有什么问题?

2 个答案:

答案 0 :(得分:0)

fooVector(locator)你想表达什么?

fooVector是一个不是函数的变量。

答案 1 :(得分:0)

如果locator迭代器在使用之前已正确初始化,那么您应该将代码更改为

if(locator->getBoo() + (insertBar.geBoo()) < 4000)