我怀疑 accumulate
不是唯一一个被淘汰的算法。
也许现在有更好的方法来对范围进行累加(折叠),因此 accumulate
已经过时了吗?
accumulate
是一个完全合理的算法,并且它并没有被任何其他算法所取代。之所以没有包含在C++20中,仅仅是因为时间问题。考虑到范围方面的尽可能多的添加,而不必担心一次性添加所有内容,否则有可能会导致没有受限制的算法能够进入C++20,这将是令人遗憾的事情。<numeric>
和<memory>
头文件。“每当有人问我们为什么没有涵盖
<numeric>
和<memory>
算法时:我们认为187页的TS已经足够了。” ——Casey Carter
std::ranges::fold_left
是对应的算法,已在 C++23 中添加。不幸的是,我不知道任何已经实现它的编译器。然而,从 cppreference 复制“可能的实现”确实可以工作。
reduce
,请参阅https://dev59.com/5VEG5IYBdhLWcg3wKFXw。 - alfC