有效地对 std::vector 中的所有项目执行 floor 功能

do efficiently floor function on all item's in std::vector

我想将 std::vector 中的所有项目放在地板上并使用以下代码:

for(const float &number : numbers)
     number = floor(number);

但是我需要为此使用并行算法 operation.is 标准 c++ 中是否有任何并行算法可以有效地对所有项目执行诸如 floor 函数之类的操作?

如果您可以使用 C++17,则可以使用 std::for_each 中的 ExecutionPolicy 参数来并行化您的循环

#include <algorithm>
#include <cmath>
#include <execution>

std::for_each(std::execution::par_unseq,
              numbers.begin(),
              numbers.end(),
              [](double& number){ number = std::floor(number); });