VS编译环境中TBB配置和C++中lambda表达式
TBB(Thread Building Blocks),线程构建模块,是由Intel公司开发的并行编程开发工具,提供了对Windows,Linux和OSX平台的支持。
TBB for Windows 官方下载链接: 点击打开链接
TBB的VS编译环境的配置步骤:
1. 在系统的用户变量和系统变量里加入TBB的dll路径:
右击我的电脑->属性->高级系统设置->环境变量,在用户变量和系统变量里的path变量(没有则新建一个)里分别加入TBB的dll所在路径。我解压出来的TBB文件路径是 “D:\Software\TBB” ,所以在path里加入路径 “D:\Software\TBB\tbb2017_20161128oss\bin\ia32\vc11”
2. 在VS工程里新建一个属性页,在属性页的VC++目录->可执行文件目录里添加路径:D:\Software\TBB\tbb2017_20161128oss\bin\ia32\vc11
3. 在属性页的VC++目录->包含目录里添加路径: D:\Software\TBB\tbb2017_20161128oss\include
4. 在属性页的VC++目录->库目录里添加路径:D:\Software\TBB\tbb2017_20161128oss\lib\ia32\vc11
经过以上4个步骤,TBB的配置就完成了,用一个简单的TBB并行程序验证一下是否配置成功:
#include <tbb/tbb.h>
#include <iostream>
using namespace std;
using namespace tbb;
int main()
{
parallel_for(0, 10, [](int num) {cout << num << ": Hello TBB!" << endl; });
getchar();
return 0;
}
如果按4个步骤正确配置了,应该有如下杂乱的输出,说明配置OK:
C++中lambda表达式
TBB程序中的parallel_for模板用到了lambda表达式,lambda表达式是C++11新增的特性,允许通过lambda表达式构造匿名函数。匿名函数适合于程序中一些可能只会被调用一次的小函数,把这些小函数重构为匿名函数可以使程序更加简洁优雅。
两个简单的lambda表达式的定义和使用示例:
#include <iostream>
using namespace std;
int main()
{
auto func1 = []() {cout << "Hello Lambda!" << endl; };
func1();
auto func2 = [](int num) {return num + 5; };
cout << func2(5) << endl;
getchar();
return 0;
}
这里定义了一个lambda表达式(函数)func1,auto用来自动获取func1函数的返回值。符号“[ ]”通知编译器接下来要定义的是一个匿名函数,符号“()”里定义传入匿名函数的参数列表,这里为空,在随后的大括号内是函数的具体实现。
VS编译环境中TBB配置和C++中lambda表达式的更多相关文章
- Android系统编译环境及连接工具配置
首先附上官网上关于环境搭建的地址:https://source.android.com/setup/build/initializing 官网目前建议的还是Ubuntu14.04,下面就是用的Ubun ...
- 写的非常好的文章 C#中的委托,匿名方法和Lambda表达式
简介 在.NET中,委托,匿名方法和Lambda表达式很容易发生混淆.我想下面的代码能证实这点.下面哪一个First会被编译?哪一个会返回我们需要的结果?即Customer.ID=5.答案是6个Fir ...
- C#中委托、匿名函数、Lambda表达式的一些个人理解
0x01定义一个委托,相当于定义一个可以存储方法的特殊变量类型 下面我们看具体的代码,通过代码更好理解 delegate void IntMethodInvoker(int x); 这行代码就是声明一 ...
- Maven在Windows中的配置以及IDE中的项目创建
Maven在Windows下的配置 1.Maven下载地址:http://maven.apache.org/download.cgi,下载红框里的版本即可. 2.解压到D盘: 3.修改配置文件sett ...
- Editplus配置Java、Python、C/C++ (基于VS2010) 编译环境
1. 为什么要配置EditPlus使其能够编译运行Java.Python.C/C++等程序? EditPlus是一款轻量级(大约2M)的文本编辑器,实际开发中,只需要关联相应的编译工具就可以化身为一个 ...
- OpenCL编译环境配置(VS+Nvidia)
英伟达的显卡首先要下载安装CUDA开发包,可以参考这里的步骤: VS2015编译环境下CUDA安装配置 安装好CUDA之后,OpenCL的配置就已经完成了80%了,剩下的工作就是把OpenCL的路 ...
- Winpython环境下mayavi配置
Winpython环境下mayavi配置 在pythonxy中会直接有mayavi软件包,但是所附带的杂包实在太多.本人一直用的是window下的winpython或者linux下的anaconda来 ...
- Java JDK 8 安装和环境变量的配置(Linux and Windows)
Java JDK 8 的安装以及环境变量的配置(Linux and Windows) JDK(Java Development Kit)包含了Java语言的编译器,能够在这里下载: http://ww ...
- Struts在Web.xml中的配置及Struts1和Struts2的区别
(1)配置Struts的ActionServlet <servlet>元素来声明ActionServlet <servlet-name>元素:用来定义Servle ...
随机推荐
- UVA 11280 - Flying to Fredericton SPFA变形
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&c ...
- iOS开发UI篇--一个侧滑菜单SlidingMenu
一.简介 侧滑菜单已经成为app一个极常用的设计,不管是事务类,效率类还是生活类app.侧滑菜单因Path 2.0和Facebook为开发者熟知,国内目前也有很多流行app用到了侧滑菜单,比如QQ.网 ...
- 各个RFC
RFC:Request For Comments(RFC),是一系列以编号排定的文件.文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件.目前RFC文件是由Internet Societ ...
- 【Codeforces Round #185 (Div. 2) D】Cats Transport
[链接] 链接 [题意] 有n座山,m只猫. 每只猫都在其中的一些山上玩. 第i只猫在h[i]山上玩,且会在t[i]时刻出现在山脚下(然后就一直在那里等) 然后有p个人. 它们听从你的安排. 在某个时 ...
- <p><span style="font-size:14px">近期须要批量将PNM格式的文件转换成GIF文件。我尝试了例如以下的图像转换工具:</span></p>
近期须要批量将PNM格式的文件转换成GIF文件.我尝试了例如以下的图像转换工具: ImageBatch:全然免费,但只支持PNG JPEG BMP GIF四种格式 OfficeConverter:在线 ...
- js中json数据简单处理(JSON.parse()和js中嵌套html)
js中json数据简单处理(JSON.parse()和js中嵌套html) 一.总结 1.html中嵌套js:<script>js代码</script> 2.js中嵌套html ...
- 仿凤凰时时彩代购平台源代码[ASP+MSSQL]完整下载
源代码简单介绍 : 适用范围: 时时彩源代码,时时彩程序,开奖平台源代码,投注平台源代码,仿凤凰时时彩源代码 执行环境: ASP+MSSQL 其它说明:仿凤凰时时彩代购平台源代码.网上售价8000 ...
- swift学习第一天:认识swift以及swift的常量和变量
一:认识swift // 1.导入框架 //#import <UIKit/UIKit.h> import UIKit // 2.定义一个标识符 // int a = 10; // swif ...
- php面试题6
php面试题6 一.总结 二.php面试题6 写出你认为语言中的高级函数:1)preg_replace()2)preg_match()3) ignore_user_abort()4) debug_ba ...
- 手机浏览器 input 输入框 数字
其实很简单了啦 type="tel"就行了呢 如果是type="number"其实不好用