我在vector<uint2> results (size)
中有价值我只想将结果值复制到vector<int> count (size)
。如何使用thrust::transform
函数执行此操作?
答案 0 :(得分:1)
您需要声明某种函数对象(它可以是UnaryFunction
或BinaryFunction
,它将从uint2
中选择第二个元素。如果启用{{1,则可以使用lambda在nvcc中:
--expt-extended-lambda
您可以改为使用函数对象:
auto selector = [&] __device__ (const uint2& pair) { return pair.y; };
然后在struct Selector
{
__host__ __device__ unsigned int operator()(const uint2& pair)
{
return pair.y;
}
};
中使用它:
thrust::transform
或
thrust::transform(results.begin(), results.end(), count.begin(), selector);