Тип возвращаемого значения тяги :: remove_if

У меня есть два массива целыхdmap  а такжеdflag  на устройстве той же длины и я обернул их указателями устройства тяги,dmapt а также dflagt

В массиве dmap есть несколько элементов со значением -1. я бы хотел удалите эти -1 и соответствующие значения из массив dflag.

Я использую функцию remove_if, чтобы сделать это, но я не могу понять, что возвращаемое значение этого вызова или как я должен использовать это возвращаемое значение, чтобы получить.

(Я хочу передать эти уменьшенные массивыreduce_by_key функция где dflagt будет использоваться в качестве ключей. )

Я использую следующий вызов для выполнения сокращения. Пожалуйста, позволь мне знать, как я могу сохранить возвращаемое значение в переменной и использовать его для адресации отдельных массивовdflag а такжеdmap

thrust::remove_if( 
    thrust::make_zip_iterator(thrust::make_tuple(dmapt, dflagt)), 
    thrust::make_zip_iterator(thrust::make_tuple(dmapt+numindices, dflagt+numindices)), 
    minus_one_equality_test() 
); 

где функтор предиката, использованный выше, определяется как

struct minus_one_equality_test
{ 
    typedef typename thrust::tuple<int,int> Tuple; 
    __host__ __device__ 
    bool operator()(const Tuple& a ) 
    { 
        return  thrust::get<0>(a) ==  (-1); 
    } 
} 

Ответы на вопрос(1)

Ваш ответ на вопрос