使用迭代器递增

时间:2017-03-04 13:57:04

标签: c++ iterator

我几天前刚开始使用迭代器。虽然我确实得到了基本想法,但我需要帮助清理一些东西。

我从一本书中学习c ++,在本章末尾有关迭代器的内容,这里有一个小小的任务:

"假设"得分"是一个包含int类型元素的向量,以下代码片段有什么错误(意味着递增每个元素)?

vector<int>::iterator iter;

for(iter =scores.begin(); iter !=scores.end(); iter++)
{
    iter++;
}

现在,显而易见的是迭代器iter已经被for循环递增,即使没有循环内的代码也是如此。所以我认为我应该这样做,增加迭代器引用的向量值。

for(iter =scores.begin(); iter !=scores.end(); iter++)
{
    *iter++;
}

但这也是一个错误。所以它让我思考......甚至可以使用迭代器增加值吗?或者是迭代器只是一个对象,用于迭代容器中的对象并引用它们?无法真正修改其价值?

1 个答案:

答案 0 :(得分:1)

将其更改为:

for(iter =scores.begin(); iter !=scores.end(); iter++)
{
    (*iter)++;
}

在C ++中,运算符具有不同的优先级,请参阅export this specific column to a txt file

在取消引用之前执行后缀增量。