【问题标题】:no match for call to ‘(std::vector<foo>) (std::vector<foo>::iterator&)’不匹配调用‘(std::vector<foo>) (std::vector<foo>::iterator&)’
【发布时间】:2012-04-19 10:43:33
【问题描述】:

我有一个类 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)

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

我不确定我的使用方式有什么问题?

【问题讨论】:

    标签: c++ vector iterator


    【解决方案1】:

    fooVector(locator)你想通过这个表达什么?

    fooVector 是变量而不是函数。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2022-01-19
        • 2017-12-23
        • 2014-01-11
        • 1970-01-01
        • 2013-11-17
        • 1970-01-01
        • 2017-07-03
        • 1970-01-01
        • 2011-12-20
        相关资源
        最近更新 更多