Typ zwracanej wartości ciągu: remove_if

Mam dwie tablice liczb całkowitychdmap idflag na urządzeniu o tej samej długości i owinąłem je wskaźnikami urządzenia ciągu,dmapt idflagt

W tablicy dmap jest kilka elementów o wartości -1. Chcę usunąć te -1 i odpowiadające im wartości z tablicy dflag.

W tym celu używam funkcji remove_if, ale nie mogę określić, jaka jest wartość zwracana przez to wywołanie lub jak powinienem użyć tej zwróconej wartości do uzyskania.

(Chcę przekazać te zredukowane tablice doreduce_by_key funkcja, w której dflagt będzie używany jako klucze. )

Używam następującego wezwania do dokonania redukcji. Daj mi znać, jak mogę zapisać zwróconą wartość w zmiennej i użyć jej do adresowania poszczególnych tablicdflag idmap

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() 
); 

gdzie funktor predykatu użyty powyżej jest zdefiniowany jako

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); 
    } 
} 

questionAnswers(1)

yourAnswerToTheQuestion