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

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

В массиве dmap есть несколько элементов со значением -1. Я хочу удалить эти -1 's и соответствующие значения из массива 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 Tuple; 
    __host__ __device__ 
    bool operator()(const Tuple& a ) 
    { 
        return  thrust::get(a) ==  (-1); 
    } 
} 

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

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