c++ - 有效地对 std::vector 中的所有项目执行下限功能
问题描述
我想将所有项目放在 std::vector 中并使用以下代码:
for(const float &number : numbers)
number = floor(number);
但我需要为此操作使用并行算法。标准 C++ 中是否有任何并行算法可以有效地对所有项目执行类似 floor 函数的操作?
解决方案
如果你可以使用 C++17,你可以使用ExecutionPolicy
参数 fromstd::for_each
来并行化你的循环
#include <algorithm>
#include <cmath>
#include <execution>
std::for_each(std::execution::par_unseq,
numbers.begin(),
numbers.end(),
[](double& number){ number = std::floor(number); });
推荐阅读
- javascript - JavaScript 同时执行页面调整大小和重新加载事件
- python - 在将它们合并到主记录器消息之前记录器参数的自定义格式
- windows - Docker 容器在启动后立即关闭
- fingerprintjs2 - 如何在指纹2哈希上添加用户名
- php - 从几天中获取星期和日期
- javascript - 如何在我的实时搜索中获得第一个字母?
- android - 错误:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期 BEGIN_OBJECT 但在第 1 行第 2 列路径 $ BEGIN_ARRAY
- jquery - AJAX 认证失败
- c# - 无法通过 Ajax 将对象列表从视图传递到控制器
- java - 字节数组输出流