gpt4 book ai didi

c++ - 使用迭代器递增

转载 作者:行者123 更新时间:2023-11-28 05:16:11 25 4
gpt4 key购买 nike

我几天前才开始使用迭代器。虽然我确实明白了基本的想法,但我需要帮助来澄清一些事情。

我正在通过一本书学习 C++,在关于迭代器的章节末尾有一个小作业,如下所示:

“假设“scores”是一个包含 int 类型元素的 vector ,下面的代码片段(旨在递增每个元素)有什么问题?

vector<int>::iterator iter;

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

现在,很明显迭代器 iter 已经通过 for 循环递增,即使没有循环内的代码也是如此。所以我想我应该这样做,增加迭代器引用的 vector 的值。

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

但这也返回了一个错误。所以它让我开始思考......是否有可能使用迭代器增加值?或者迭代器只是一个对象,用于遍历容器中的对象并引用它们?无法实际修改它们的值?

最佳答案

将其更改为:

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

在 C++ 中运算符有不同的优先级,参见 here for a table .

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

关于c++ - 使用迭代器递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42596844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com