我从代码中得到两个错误。我相信它们与以下事实有关:我创建了一个向量对象,其中保存着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/