我试图将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函数的示例。

再次感谢!

最佳答案

似乎您以错误的顺序使用了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;
    }
}

关于c++ - 实现推力二元谓词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7976841/

10-12 05:34