C++23 新的折叠算法
原文英文,约2100词,阅读约需8分钟。发表于: 。New fold algorithms in C++23, what they do, how to use them. The post C++23’s New Fold Algorithms appeared first on C++ Team Blog.
C++23引入了std::ranges::fold_*算法族,包括六个fold函数,可满足不同的使用情况。其中,fold_left函数可用于替代std::accumulate,同时还提供了fold_right函数。fold_left_first和fold_right_last函数使用范围的第一个元素作为初始元素,而fold_left_with_iter和fold_left_first_with_iter函数则公开了由fold计算的另一个结果:结束迭代器。然而,由于会产生额外的复制,因此不支持fold_*算法族的投影函数。std::ranges::reduce函数已计划但尚未编写。