对于向量向量,无法解析Eclipse方法

时间:2012-12-02 21:50:14

标签: c++ eclipse

每当我尝试通过索引运算符访问向量元素的方法或字段时,例如bar[0].push_back(0) vector< vector< int > >我从eclipse中得到“方法无法解决”的语义错误。

代码与g++ -Wallclang++编译得很好 - 这是一个简短的例子。

#include <set>
#include <vector>
#include <iostream>

int main()
{
    std::vector< std::vector < int > > bar(10);
    bar[0].push_back(0);    // eclipse "method 'push_back' could not be resolved
    (bar[0]).push_back(1);  // eclipse "method 'push_back' could not be resolved
    bar[0][0] = 0;      // This and all else is just fine for eclipse
    std::vector<int> &bar0 = bar[0];
    bar0.push_back(2);
    std::vector<int> *pbar0 = &bar[0];
    pbar0->push_back(3);
    return 0;
}

std::vector<std::pair<int, int> >::iterator尝试访问iter->first时遇到了类似问题。 (领域'首先无法解决)。

它是一个C / C ++项目,.cpp文件,在Eclipse 4.2.1中,没有未解决的内容。

我完全迷失在这里 - 我怎么能摆脱这个日食错误?

更新:我也尝试了最新版本:Juno Service Release 1.相同的结果。

Update2:我实际上注意到,对于一个全新的项目,错误不会发生,所以我应该能够最终确定导致此错误的设置。到目前为止,我无法识别任何内容,没有定义(非内置)符号,路径看起来也很好。

1 个答案:

答案 0 :(得分:2)

从头开始重新创建项目修复了问题。看来该项目是由以前版本的eclipse创建的,可能会导致问题。由于.project和.cproject中的大量更改,无法确定具体原因。