gpt4 book ai didi

c++ - 为什么 std::generate 不返回类似于 std::for_each 的状态?

转载 作者:搜寻专家 更新时间:2023-10-31 01:56:29 34 4
gpt4 key购买 nike

std::generate 返回 void:

template<typename ForwardIterator, typename Generator>
void generate(ForwardIterator first, ForwardIterator last, Generator gen);

std::for_each 返回 Function 时:

template<typename InputIterator, typename Function>
Function for_each(InputIterator first, InputIterator last, Function f);

SGI 的 documentation这表明 for_each 的结果对于返回在算法过程中可能发生变化的任何状态很有用。 generate 不也是这样吗?这是一种疏忽,还是界面差异的合理性?

最佳答案

一个显着的区别是,虽然 for_each 对容器内容进行操作,但 generate 只是简单地覆盖它。因此,传递给 generate 的函数对象无法收集有关容器内容的任何信息,因此之后几乎没有理由返回它(它的最终状态是容器内容不变的)。

关于c++ - 为什么 std::generate 不返回类似于 std::for_each 的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7069614/

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