首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PPL在数组中查找最大元素

使用PPL在数组中查找最大元素
EN

Stack Overflow用户
提问于 2015-12-16 17:27:42
回答 1查看 381关注 0票数 0

我需要实现一个函数,它将使用ppl.h在浮点数数组中找到最大的元素。

我有这段代码,基于this answer

代码语言:javascript
复制
float find_largest_element_in_matrix_PPL(float* m, size_t dims)
{
    float max_element;
    int row, col;
    concurrency::combinable<float> locals([] { return INT_MIN + 0.f; });
    concurrency::parallel_for_each(size_t(0), dims * dims, [&locals](int curr)
    {
        float & localMax = locals.local();
        localMax = max<float>(localMax, curr);
    });

    max_element = locals.combine([](float left, float right) { return max<float>(left, right); });
    cout << max_element << endl;
    return max_element;
}

但是,这段代码存在一个问题:

  • 它在执行之前抛出以下异常:

错误C2780 'void Concurrency::_Parallel_for_each_impl(const _Random_iterator &,const _Random_iterator &,const _Function &,_Partitioner &,std::random_access_iterator_tag)':期望5个参数--4个提供parp:\Microsoft 14.0\VC\include\ppl.h 2987 Error C2780 'void C2780 const _Forward_iterator &,const _Function &,const Concurrency::auto_partitioner &,std::forward_iterator_tag]:期望5个参数--4个提供parp:\MicrosoftVisualStudio14.0\VC\include\ppl.h 2987 错误C2893未能专门化函数模板'iterator_traits<_Iter>::iterator_category std::_Iter_cat(const _Iter &)‘parp D:\Microsoft 14.0\VC\include\ppl.h 2987

  1. 你能帮我解决这个问题吗?
  2. 如何重写代码以利用parallel_for?(我不能引用传递给parallel_for块中函数的数组参数)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-19 23:37:21

代码语言:javascript
复制
float SimpleTest::SimpleTestfind_largest_element_in_matrix_PPL(float* m, size_t dims)
{
    float max_element;
    concurrency::combinable<float> locals([&]{ return INT_MIN + 0.f; });
    int last= dims*dims;
    concurrency::parallel_for(0, last, [&](int curr)
    {
        float & localMax = locals.local();
        localMax = max<float>(localMax, curr);
    });

    max_element = locals.combine([](float left, float right) { return max<float>(left, right); });
    std::cout << max_element << endl;
    return max_element;
}

也许它会有用

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34318366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档