预计“ [''token之前,预计无限制的ID
Expected unqualified-id before ‘[’ token
我从代码中遇到两个错误。我相信他们与我创建了一个载体对象的事实有关,该矢量对象拥有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] << " ";
}
您不能这样做索引访问:
if(cases[i].[j] == seen[w]);
else
seen.push_back(cases[i].[j]);
用:
替换它 if(cases[i][j] == seen[w]);
else
seen.push_back(cases[i][j]);
注意删除的点。
您为什么要进行如此非常规的if
结构?我将其写为
if(cases[i][j] != seen[w])
seen.push_back(cases[i][j]);
旁注:正如其他人所指出的(我已经注意到自己:((,您的代码中还有许多其他错误和不幸:
- 您正在尝试使用1个基于1个索引。C使用基于0的索引,因此您的循环在类似数组的对象上应从0到
< array_length
-
cin >> M[j];
无效,因为vector
是空的。在向量中读取int
和.push
- 您应该在阅读循环的每次迭代中清空
M
向量,否则它仍然包含上一个迭代中的值(我确定那不是您想要的(
基于您遇到的错误,您的问题在于这些代码的行:
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]
之间存在一个点,这导致了TH错误。只需删除即可。
您遇到的另一个问题是向量索引从0而不是1开始,并且它们的结尾为大小,因此数字必须小于不小于大小,并且索引应在0开始。
相关文章:
- 从函数角度看ID到文件路径的内部与外部映射
- 通过组合不同的类型来创建唯一的id
- 我不断收到 [错误] ID 返回 1 退出状态错误,但看不到问题所在
- FFMPEG配置文件级别id大小无效
- 方法内部但循环仍得到预期的不合格id错误C++
- 如何制作无限制照明系统
- 如何获取 GLFW 窗口 ID?
- 当简单捕获中的标识符显示为参数的声明符 ID 时,没有编译器诊断
- 显示数组中的学生 ID 和最高分
- C++:"("令牌"之前有预期的非限定 id 指向类中成员函数的指针
- 在PostgreSQL中根据它们的ID选择大量行的最快方法是什么?
- Xcode 9.4.1 中的 Apple Mach-O 链接器 (id) 错误
- 错误:令牌 { '{' 之前应存在非限定 ID
- 断言"id < 0"在Qt ActiveX中失败
- C++部分概念 id:显式模板规范顺序/第一个参数的特殊状态的原因是什么?
- 如何根据两个因素组织向量:id 和数量?(C++)
- C :数据文件有错误:预期的无限制ID
- 错误:数字常数之前的预期无限制ID:std :: array和std ::向量大小分配
- 预计“ [''token之前,预计无限制的ID
- 错误:在第8行上的“ const”之前,预期的无限制ID