我几天前才开始使用迭代器。虽然我确实得到了基本想法,但我需要帮助清理一些东西。
我正在从一本书中学习C ,在有关迭代器的章节结尾处,有一些小分配是这样的:
"假设"分数"是一个载有int类型元素的向量,以下代码代码段(意味着增加每个元素)是什么?
?vector<int>::iterator iter;
for(iter =scores.begin(); iter !=scores.end(); iter++)
{
iter++;
}
现在,即使没有循环中的代码,迭代器迭代也已经被for循环增强了。因此,我认为我应该这样做确实会增加迭代器引用的向量的值。
for(iter =scores.begin(); iter !=scores.end(); iter++)
{
*iter++;
}
但这也返回了一个错误。因此,这让我想到...甚至可以使用迭代器增加值吗?还是迭代器只是一个曾经用来通过容器中的对象迭代并引用它们的对象?无法实际修改其价值?
将其更改为:
for(iter =scores.begin(); iter !=scores.end(); iter++)
{
(*iter)++;
}
在C 运算符中具有不同的先例,请参见此处的表。
延期之前进行后缀增量。