gpt4 book ai didi

c++ - 前向迭代器 C++ : for_each behavior

转载 作者:行者123 更新时间:2023-11-27 23:23:54 25 4
gpt4 key购买 nike

所以我们知道 foreach 是这样的:

template<class InputIterator, class Function>
Function for_each(InputIterator first, InputIterator last, Function f)
{
for ( ; first!=last; ++first ) f(*first);
return f;
}

我已经实现了一个

template <typename T>
class Range

问题是当我将这个函数与 for_Each 一起使用时:

static void add1(float &v)
{
++v;
}

由于 first "!="last(不是 first"<"last),它会进入无限循环,那么当人们实现自己的前向迭代器以与 for_each 一起工作时,他们会怎么做?

最佳答案

您的方法的问题是您的迭代器递增运算符不会更改迭代器,而是更改存储的值。这意味着在 for_each 循环内,条件在迭代器的增量运算符和函数中都被修改。

关于c++ - 前向迭代器 C++ : for_each behavior,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770489/

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