tbb parallel_例如没有lambda的c ++ [英] tbb parallel_for example c++ without lambda

查看:78
本文介绍了tbb parallel_例如没有lambda的c ++的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

能否在不使用lambda表达式的情况下为我提供有关tbb"parallel_for"的示例?因为我不能在Ubuntu系统的C ++编译器下运行lambda表达式,所以我不这样做. 简而言之:请将此for循环转换为parallel_for.

Can you give me an example on tbb "parallel_for" without using lambda expression? Because I can't run lambda expression under Ubuntu system's C++ compiler, and I don't why. to be brief: turn this for loop into parallel_for please.

void print(int n)
{
    cout<<n<<endl;
}
for(int i=0; i<100; i++)
{
    print(i);
}

顺便说一句,如果谁能告诉我如何在linux系统中运行C ++ lambda表达式,那对我会更好.谢谢.

by the way, if who can tell me how to run C++ lambda expression in linux system, that would be better for me. Thanks.

推荐答案

parallel_for将使用任何函子,该函子可以是lambda,函子类或简单的旧函数;以下内容也应该可以正常工作:

parallel_for will take any functor, which can be a lambda, a functor class or a plain old function; the following should work just fine too:

#include "tbb/tbb.h"
using namespace tbb;
...
void print( size_t n) {
   printf("hellow world %d\n", n);
}
void print_range( const blocked_range<size_t> & r ){
     for( size_t i = r.begin(); i != r.end(); ++i )
         printf("hello from range: %d\n", i);
}
void doit() {
      parallel_for<size_t>( 1, 10, 1, print );
      parallel_for( blocked_range<size_t>(1,10), print_range );
}

这篇关于tbb parallel_例如没有lambda的c ++的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆