2

我正在尝试将 min_element 用于结构数组,但我根本无法为该操作定义二进制函数。

我想隐式定义该结构,没有 , 但是

没事吧?我几乎尝试了所有方法,但似乎没有任何效果。

struct pred : public binary_function <bool , float3 , float3>
{
   bool operator () ( const float3 a, const float3 b)
   {
      return a.x > b.x;
   }
}

相反,我遇到了奇怪的错误,我没有正确实施它,并且其中一种类型存在重载问题,我不知道究竟是哪一种。

谢谢你的帮助。

MIN_ELEMENT我只需要一个带有二进制谓词接受的工作函数的示例。

再次感谢!

4

1 回答 1

3

看起来您的 binary_function 的模板参数顺序错误。返回类型遵循参数类型,而不是相反。在我的脑海中,进行您正在寻找的比较的二进制谓词应该看起来像这样(买家要小心,从未靠近编译器):

struct pred: public binary_function<float3,float3,bool>
{
    __device__ bool operator()(const float3 &a, const float3 &a) const
    {
        return a.x > b.x;
    }
}
于 2011-11-02T07:50:31.583 回答