c++ - 使用 vector 代码片段进行练习,包括 for 循环

标签 c++ vector for-loop

首先,这不是家庭作业。我正在使用我为自己购买的一本书在家里学习 C++ 的入门知识,其中包含一个我坚持使用的练习。它询问我以下代码有什么问题,但我不确定我是否以正确的方式查看它。

这些是练习和代码:

Assuming that scores is a vector that holds elements of type int, what's wrong with the following code snippet (meant to increment each element)?

vector<int>::iterator iter;
for (iter = scores.begin(); iter != scores.end(); ++iter)
{
  iter++;
}

我的猜测是 'iter++' 被注入(inject)到 for 函数和 for block 中,这意味着它会被注入(inject)两次,因此会超出循环结束。这是正确的吗?

最佳答案

你是对的。这段代码的问题是迭代器在循环内递增,也在循环体执行后递增。

代码应该做的是增加存储在循环内迭代器位置的值,因此我们需要取消引用它。

(*iter)++

关于c++ - 使用 vector 代码片段进行练习,包括 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9501053/

相关文章:

c++ - 将类型安全代码与运行时决策相结合

c++ - 关于虚函数的问题

java - 将 Vector3 缓动到新位置

python 2.7 : Simple 'for' loop implementation

python - Python 的嵌套循环结果聚集在一起

ios - Swift - 在 for 循环中创建具有不同名称的变量

c++ - Arduino - 从实例创建数组并赋值 [C++]

c++ - 获取与派生类表达式具有相同 cv 限定和值类别的基类子对象

c++ - 关于指针的存在

python - 将一组符号线性方程转换为矩阵形式