并行使用tbb库

时间:2014-03-13 14:43:14

标签: c++ parallel-processing

如果你有一个类和一个并行方法,如

    class A
    {
       void operator()(blocked_range<size_t>& r)
    const
   {
           double value = 0;
           for (size_t i = r.begin(); i != r.end(); ++i)
           {
               value = value + i;
           }

        std::cout << value;
       }
    }

然后运行,然后值也将与循环一起打印1000次。如何只能并行运行循环并将结果用于其他函数或其他并行循环?因为我需要在其他功能中使用值,但不希望看到1000打印。

由于

1 个答案:

答案 0 :(得分:0)

如何在某处创建变量并通过引用将其传递给您的函数,如下所示:

class A {
    void operator()( blocked_range<size_t>& r, double& answer ) {
        double value = 0;
        for (size_t i = r.begin(); i != r.end(); ++i) {
            value = value + i;
        }
        answer = value;
    }
}