NetBeans将向量大小()标记为错误:无法解析标识符 我在NETBeCs中使用C++中的多维向量,每当我尝试调用.Sead方法时,NETBeBes用红色标记,并且无法解析标识符大小。然而,它确实能识别其他向量方法,如.push_back。虽然代码编译得很好

NetBeans将向量大小()标记为错误:无法解析标识符 我在NETBeCs中使用C++中的多维向量,每当我尝试调用.Sead方法时,NETBeBes用红色标记,并且无法解析标识符大小。然而,它确实能识别其他向量方法,如.push_back。虽然代码编译得很好,c++,vector,netbeans,C++,Vector,Netbeans,这是我的密码: #include <vector> using namespace std; typedef vector<int> int1D; typedef vector<int1D> int2D; int2D populate (int2D arg1, int arg2); int main () { //Do stuff... } int2D populate (int2D grid, int gridSize) { int2

这是我的密码:

#include <vector>
using namespace std;

typedef vector<int> int1D;
typedef vector<int1D> int2D;

int2D populate (int2D arg1, int arg2);

int main () {
    //Do stuff...
}

int2D populate (int2D grid, int gridSize) {
    int2D my_2d_array;
    //Here I fill my_2d_array...
    for (int x = 0; x < gridSize; x++) {
        for (int y = 0; y < gridSize; y++) {
            int value = grid[x][y];
            if (value == 0) {
                //get all coordinaes of values with 0
                int1D coordinates;
                coordinates.push_back(x);
                coordinates.push_back(y);
                my_2d_array.push_back(coordinates);
            }
        }
    }
    for (int x = 0; x < my_2d_array.size(); x++) {
        //do something
    }
}
以下是错误突出显示的屏幕截图:


我有完全相同的症状,也就是说,我定义了一个向量 它给出了相同的错误消息,无法解析标识符大小, 虽然它编译成功

执行以下操作有助于:

右键单击项目->代码帮助->清除C/C++缓存并重新启动IDE


注意:这与右键单击project->Code Assistance->Repasse project不同,它在几篇文章中提到过,但对我没有帮助。

Repasse project似乎对我没有任何帮助。来自的被接受的答案最初似乎有效,但返回了错误。相反,我发现这个解决方案是有效的。这个过程很简单:

在项目上单击鼠标右键,然后选择“属性”。 看看代码帮助。确保C++编译器有C++标准,设置为C++ 11或C++ 14,而不只是默认设置。在代码帮助下,可能需要对C编译器的C标准执行相同的操作。

C++默认标准需要更改为C++ 11,而不是默认值,它来自前一个答案。我有点怀疑,任何实际的最新的C++标准都将这些函数从定义中删除,但我不能肯定,我不确定它们是指什么标准作为默认值。


那太愚蠢了。Netbeans似乎需要大量的溺爱和摆弄,以使其构建的代码在几乎所有地方都能很好地工作。我没有像这样的问题,因为大约2000个/p>这是IDE产生的错误还是编译器错误?不,它编译好…NETBEAK是一个相当蹩脚的C++ IDE。我放弃了NETBeS,它的C++代码完成和分析很差,VisualStudio代码在这里太多NETBeaBead…尝试转到项目属性,查找代码帮助,然后单击“重新分析项目”