我从代码中得到两个错误。我相信它们与以下事实有关:我创建了一个向量对象,其中保存着int类型的向量对象(即向量的向量)。当我尝试使用下标运算符访问矢量对象中的矢量数组时,收到一条错误消息,该错误消息与本文的标题相同。

这是我的代码:

int main()
{
    vector<int> M;
    vector<vector<int>> cases;

    int numberOfCase;
    cin >> numberOfCase;
    for(int i = 1; i <= numberOfCase; i++)
    {
        int s;
        cin >> s;
        for(int j = 1; j <= s; j++)
            cin >> M[j];
        cases.push_back(M);

    }
    // determine size of M;
    vector<int> seen;
    for(int i = 1; i <= cases.size(); i++)
    {

        for(int j = 1; j < cases[i].size(); j++)
        {
            for(int w = 1; w < seen.size(); w++)
            {
                if(cases[i].[j] == seen[w]);// error
                else
                    seen.push_back(cases[i].[j]); // error
            }
        }
    }

    for(int i = 1; i <= seen.size(); i++)
        cout << seen[i] << " ";

}

最佳答案

根据您所遇到的错误,您的问题出在以下几行代码中:

for(int j = 1; j < cases[i].size(); j++)
{
    for(int w = 1; w <= seen.size(); w++)
    {
        if(cases[i].[j] == seen[w]); //here
        else
            seen.push_back(cases[i].[j]); //here
    }
}


错误是在[i][j]之间有一个点,这引起了错误。只需将其删除。

您遇到的另一个问题是向量索引以0而不是1开头,并且以大小结尾,因此数字必须小于,不小于等于size,并且索引应该以0开始。

关于c++ - 预期在“[” token 之前的不合格ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43783102/

10-09 19:56