我是编程新手,我正在尝试在我正在编写的代码中使用基于范围的 for 循环。循环范围基于用户获取的 2 个输入。
但是我的代码无法编译并且给出错误:
"这个基于范围的'for'语句需要一个合适的函数,但没有找到"。
有没有办法解决这个问题,或者我应该使用基于范围的 for 循环以外的其他东西?我应该说明我不熟悉指针或类。
我的代码的缩短版本:
cin >> rangestart>> rangeend;
int val{ rangestart };
for (auto val : rangeend)
{
vec.push_back(val);
}
显而易见的方法是使用for (int val = rangestart; val <= rangeend; ++val)
.
基于范围的 for 循环用于循环访问集合。因此,它不适合您的特定用例。
for (auto val : rangeend)
这并不意味着"从val
迭代到rangeend
"。
它的意思是"迭代集合rangeend
,每个元素被重新声明为auto val
"。
这两件事是完全不同的。
只需对整数使用普通循环即可。