for 循环/for_each 的每次迭代可以并行完成吗? (C++11)

2024-02-21

我正在迭代结构向量并单独处理每个结构。
它看起来像这样:

for_each(begin(data),end(data),DoTask);
//assume "data" is std::vector<DataT>  
//assume DoTask is a function that takes a DataT by reference

由于 DoTask 连接到特定网站并分析 HTML,因此代码速度非常慢。
加快速度的最佳方法是什么?
我的目标是同时分析多个 DataT。
我对线程很陌生,但是std::异步 http://en.cppreference.com/w/cpp/thread/async and 标准::未来 http://en.cppreference.com/w/cpp/thread/future看起来很有前途。


你可以做这样的事情

for(T& d : data) std::thread(DoTask, d).detach();

或者您可以使用更复杂的东西,例如英特尔的线程构建块和parallel_for(这不是名字吗?)其功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

for 循环/for_each 的每次迭代可以并行完成吗? (C++11) 的相关文章

  • 如何向 UWP 项目添加 .NET dll 引用?

    我有几个适用于 NETv4 x 的 NET dll 项目 我将版本更改为 4 6 1 并重新构建 没有出现问题 当我尝试从 UWP 项目向它们添加引用时 出现错误 项目的目标是 NETCore 而文件引用的目标是 NET框架 这不是受支持的
  • 如何在 C# 事件中区分更改是由代码还是由用户进行?

    我有一个简单的TextBox一开始是空的 我有一个简单的事件 TextChanged 可以知道用户何时更改了其中的任何内容TextBox 但是 如果我自己在代码中对其执行任何操作 该事件就会触发 喜欢设置textbox Text Test
  • 实体框架代码优先 - 在另一个文件中配置

    使用 Fluent API 将表到实体的映射分开的最佳方法是什么 以便它全部位于单独的类中 而不是内联在 OnModelCreating 方法中 我目前在做什么 public class FooContext DbContext prote
  • 我应该在单元测试中使用 AutoMapper 吗?

    我正在为 ASP NET MVC 控制器方法编写单元测试 这些控制器依赖于IMapper 我创建的用于抽象 AutoMapper 的接口 使用 Castle Windsor 通过构造函数注入传入 动作方法使用IMapper从领域对象映射到
  • __FUNCTION__ 宏的 C# 版本

    有人对 C FUNCTION 宏的 C 版本有好的解决方案吗 编译器似乎不喜欢它 尝试使用这个代替 System Reflection MethodBase GetCurrentMethod Name C 没有 LINE or FUNCTI
  • 组合 Datepicker 和 Timepicker 值 Win 8.1

    我试图同时使用 Datepicker Timepicker 来返回可以存储在数据库中的 DateTime 例如 我想要安排会议的开始日期和结束日期 如果适用 我将如何将这些值组合成 SQL 数据库可以处理的正确格式 任何反馈都会很棒 我让这
  • 成员初始值设定项列表中的求值顺序是什么?

    我有一个带有一些参数的构造函数 我假设它们是按照列出的顺序初始化的 但在一种情况下 它们似乎是按相反的顺序初始化的 导致中止 当我反转参数时 程序停止中止 下面是我正在使用的语法的示例 a 之前需要初始化b 在这种情况下 你能保证这个初始化
  • 如何检测斑点并将其裁剪成 png 文件?

    我一直在开发一个网络应用程序 我陷入了一个有问题的问题 我会尝试解释我想要做什么 在这里您看到第一个大图像 其中有绿色形状 我想要做的是将这些形状裁剪成不同的 png 文件 并使它们的背景透明 就像大图像下面的示例裁剪图像一样 第一张图像将
  • 捕获当前正在播放的声音

    是否可以捕获计算机上当前播放的声音 如果能够将其保存为 mp3 就好了 但我认为这样做会存在一些法律问题 所以 wav 也可以 我环顾四周 有人建议使用虚拟音频线之类的东西 在 C 中捕获声音输出 https stackoverflow c
  • CMake - 将预构建库链接到 C# 项目

    我正在使用 CMake 构建 C 库 该库依赖于已构建的库 dll 我似乎无法让图书馆链接到我的图书馆 我尝试过使用target link libraries mylib external lib 我也尝试过暴力破解 reference e
  • 如何在不使用reinterpret_cast的情况下使用dlsym()加载函数?

    我正在尝试使用 clang tidy 来强制执行 C 核心指南 虽然它确实有很多有效点 但有一件事我无法真正解决 dlsym 返回一个void 我需要以某种方式将其转换为正确的函数指针 为此 我使用reinterpret cast 由于指南
  • for 循环 - 没有效果的语句

    由于某种原因 我收到错误 statement with no effect关于这个声明 for j idx j lt iter j increment printf from loop idx i int idx punc ctxt j 你
  • 抽象类和接口之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 接口与基类 https stackoverflow com questions 56867 interface vs base class 我不明白抽象类和接口之间的区别 我什么时候需要使用哪种字体
  • C++ Primer 5th Edition 错误 bool 值没有指定最小大小?

    bool 的最小大小不应该是 1 个字节吗 这有点学术性的东西 尽管它们会转换为数字 并且 与其他所有事物一样 它们最终将基本上由计算机内存中的数字表示 但布尔值不是数字 你的bool可以取值true 或值false 即使您确实需要至少 1
  • 如何使用Python3.4在tornado中进行异步mysql操作?

    我现在使用Python3 4 我想在Tornado中使用异步mysql客户端 我已经发现torndb https github com bdarnell torndb但在阅读其源代码后 我认为它无法进行异步mysql操作 因为它只是封装了M
  • 为什么我不能在扩展 List 的类中调用 OrderBy?

    我有一堂课 Deck 其中包含一个名为的方法Shuffle 我正在致力于重构Deck延长List
  • 改进C++逐行读取文件的能力?

    我正在解析大约 500GB 的日志文件 我的 C 版本需要 3 5 分钟 我的 Go 版本需要 1 2 分钟 我正在使用 C 的流来流式传输文件的每一行以进行解析 include
  • 当我读取 500MB FileStream 时出现 OutOfMemoryException

    我使用 Filestream 读取大文件 gt 500 MB 但出现 OutOfMemoryException 任何有关它的解决方案 我的代码是 using var fs3 new FileStream filePath2 FileMode
  • 在 C# 中读取/写入命令行程序

    我正在尝试与 C 的命令行程序进行对话 它是一个情绪分析器 它的工作原理如下 CMD gt java jar analyser jar gt Starting analyser 这是我想从我的 C 程序插入内容的地方 例如 I love y
  • 最后从同一类中的其他构造函数调用构造函数

    我在这里读到可以调用另一个构造函数从同一类中的另一个构造函数调用构造函数 https stackoverflow com questions 829870 calling constructor from other constructor

随机推荐

  • 在 Git 中跨分支共享文件

    我的项目中有很多文件有时会被修改 但总是在许多不同的分支之间共享 示例包括构建脚本 包含路径的批处理文件等 甚至 gitignore 文件本身也是一个示例 我希望这些东西在源代码管理中 但我不希望各个分支跟踪它们的更改 你如何处理这种情况
  • Android Studio + Spek 集成

    我正在尝试将 Spek 测试框架添加到我的 Android Studio 项目中 按照说明进行操作Here http spekframework org docs latest 我最终将以下内容添加到我的模块中build gradle te
  • Qt 托盘图标拖放

    有谁知道是否可以使用 Qt 对托盘图标进行拖放操作 我一直在做一些研究 这是我得出的结论 QSystemTrayIcon 无法显式处理拖 放事件 不过 有一种基于 Spifftastic 托盘图标定位方法的解决方法 您创建一个独特的彩色图标
  • 带有 Ionic 3 的 Google Maps Native cordova 插件仅显示灰色框

    我试图显示地图 但我得到的只是一个底部带有谷歌徽标的灰色框 我查看了该网站上的其他帖子 并尝试了所有这些帖子 但似乎都没有解决该问题 我正在使用 ionic 3 12 0 和 cordova 插件 googlemaps 2 0 7 我已确保
  • 输出 iso8601 中的 Ruby 持续时间

    我希望在 ruby on Rails 中为 schema org 以 iso8601 格式输出持续时间 我已经知道如何输出 iso8601 中的时间戳 例如video created at iso8601 我现在想做的是输出以下格式的内容
  • 帕斯卡三角形

    我正在使用 python 脚本寻找帕斯卡三角形 我已经完成到这里了 不知道如何添加 numstr raw input please enter the height height int tri row1 1 row2 1 1 tri ap
  • 使用 Lodash/Javascript 过滤嵌套数组

    我有以下对象数组 var sizeList id 1 title Test1 type name Big present false name Small present true name Medium present false id
  • Android 图像按钮工具提示

    我正在尝试构建一个带有图像按钮的应用程序 其工作方式类似于操作栏 但我无法让它们在长按时显示工具提示
  • 修复配置错误的镜像 zfs 池

    我的机器从两个 USB 设备的镜像 zfs 池启动 以前的泳池是这样的 sudo zpool status pool freenas boot state ONLINE scan resilvered 891M in 15h19m with
  • 使用模板函数的不同类型的输入

    我尝试使用模板函数从用户那里获取输入 我希望能够输入 int double float 和 strings 这是我到目前为止的代码 template
  • 知道在Windows机器上杀死哪个java.exe进程[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 当基于 java 的应用程序在 Windows 计算机上开始出现异常时 如果您无法正常退出该应用程序 您希望能够在任务管理器中终止该进程 大多数时候
  • ASP.NET MVC:如何添加视图、脚本和内容文件作为链接以便跨项目共享? (通过VS中的“添加为链接”)

    我有一个想要共享的通用 Layout cshtml 文件 当我将文件添加为项目中的链接 通过 添加现有项目 gt 添加为链接 时 我收到一条错误 指出在运行应用程序时找不到该文件 如果我将构建操作设置为 始终复制 它会将文件复制到构建目录
  • 将 /socket.io/socket.io.js 缩小为 1.0

    今天socket io 1 0已经发布了 我刚刚更新 现在以下内容不再起作用 io enable browser client minification io enable browser client etag io enable bro
  • selenium.common.exceptions.ElementNotVisibleException:消息:尝试使用 Python + Selenium 访问元素时元素不可见

    我尝试在以下网站中输入用户名和密码 https www thegreatcoursesplus com sign in https www thegreatcoursesplus com sign in driver webdriver C
  • SQL Server 错误 916

    当我尝试附加数据库时出现此错误 错误信息 发生异常 执行transact sql语句时 或批次 我已将数据库复制到 SQL Server 服务器的 Data 文件夹中 我想在 SQL Server 中配置数据库 但是当我尝试附加数据库时 出
  • 使用 CameraPreview 时获取 GPS 数据的问题

    我尝试编写一些 AR 应用程序 现在 我编写了一些代码来显示相机预览并从设备上的传感器 加速计 指南针 GPS 接收器 获取数据 当我在单独的应用程序中运行代码时 例如相机预览作为一个应用程序和作为第二个应用程序获取 GPS 数据的应用程序
  • 如何将多个外部侦听器注册到 d3 中的同一选择?

    我正在 d3 中编写一个项目 其中有一个 html 页面 其中包含两个外部 javascript 文件 例如script 1 js and script 2 js 我需要从 script 1 js 注册一个事件侦听器 从 script 2
  • pip 无法在 Mac 上的 docker 容器内安装软件包

    我正在关注Docker 入门 https docs docker com get started part2 将 docker 与 python 应用程序一起使用的指南 但是当 docker 执行命令时 RUN pip install r
  • 如何防止子视图与标签栏重叠?

    我有一个底部带有标签栏的视图 该视图被推送到导航控制器上 因此顶部也有一个导航栏 对于这个视图 我想显示一个表视图 它是我从它自己的笔尖创建的 当我将此视图添加为子视图时 它与选项卡栏重叠 有没有办法让这个子视图自动调整大小到顶部栏和底部栏
  • for 循环/for_each 的每次迭代可以并行完成吗? (C++11)

    我正在迭代结构向量并单独处理每个结构 它看起来像这样 for each begin data end data DoTask assume data is std vector