gpt4 book ai didi

c++ - 是否有累积最小值的 std::implementation

转载 作者:搜寻专家 更新时间:2023-10-31 00:35:58 32 4
gpt4 key购买 nike

假设

float bar [5] = {  5.7106, 3.1768, 5.7458, 4.5859, 2.2718 };

我正在寻找一个函数,例如:

cummin(bar,bar+bar.size());

这将返回的就地累积最小值酒吧的条目,例如该栏包含:

5.7106, 3.1768, 3.1768, 3.1768, 2.2718 

我的问题也是是否有可能实现累积最小值比朴素方法更有效(它用于我正在处理的代码中的瓶颈函数 上,我不认为它可以矢量化)。

最佳答案

没有这个功能。然而,这是prefix sum的应用,这被称为 std::partial_sum在 C++ 中。

你可以这样调用它:

std::partial_sum(begin(bar), end(bar), begin(bar),
[](float a, float b) { return std::min(a, b); });

如果这仍然是一个瓶颈,那么一个有趣的观察是前缀和可以有效地并行化。这不是很简单。幸运的是,并行算法库,如 Threading Building Blocks已经包含它的实现。

关于c++ - 是否有累积最小值的 std::implementation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22765381/

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