这个基于范围的'for'语句需要一个合适的函数,但找不到任何函数



我是编程新手,我正在尝试在我正在编写的代码中使用基于范围的 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"。

这两件事是完全不同的。

只需对整数使用普通循环即可。

最新更新