gpt4 book ai didi

c++ - 英特尔 tbb parallel_for : pass class member function with parameters?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:20:45 24 4
gpt4 key购买 nike

是否可以将类成员函数(带参数)传递给 parallel_for?沿线的东西:

void classT::A(const tbb::blocked_range<std::size_t>& r,b) {}

void classT::B(e,f,g) {
tbb::parallel_for( blocked_range<size_t>(0,n), <need to call A with parameter b,
along with r> )
}

最佳答案

this example .

他们创建一个类并为该类提供所需的所有参数。在该类中还有一个 operator(),它对数据进行操作。然后使用该类的实例调用 parallel_for。

parallel_for(blocked_range<int>(0, nElements, 100), ArraySummer( p_A, p_B, p_SUM_TBB ) ); 
//The class is arraysummer

如何做到:

class ClassTACaller
{
int* m_parameter;
ClassT* m_Tinstance

public:

ClassTACaller(ClassT* tinstance, int* param):m_parameter(param), m_Tinstance(tinstance){}
void operator() ( const blocked_range<int>& r ) const
{
m_Tinstance->A(r, param);
}
};

parallel_for(blocked_range<int>(0, nElements, 100), ClassTACaller(&classTinstance, &x));

关于c++ - 英特尔 tbb parallel_for : pass class member function with parameters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26689659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com