2013-05-16 2 views
0


장치 ptr (thrust :: device_ptr < int>)을 사용하여 키별로 정렬하는 데 문제가 있습니다.
이 :thrust :: sort_by_key with device_ptr errors

Error 48 error : call of an object of a class type without appropriate operator() or conversion functions to pointer-to-function type  

이 오류가 merging_sort.h 및 stable_merge_sort.incl에서입니다 :

thrust::sort_by_key(dev_ptr_key,dev_ptr_key+noOfSelectedRows,dev_ptr_val,dev_ptr_val+noOfSelectedRows); 

오류를 제공합니다.
)는 (시작 사용 :

thrust::sort_by_key(dev_ptr_key->begin(),dev_ptr_key->begin()+noOfSelectedRows,dev_ptr_val->begin(),dev_ptr_val->begin()+noOfSelectedRows); 

오류를 제공합니다 :

Error 28 error : loop in sequence of "operator->" functions starting at class "thrust::device_ptr<int>" 

누구나 그것을 작동하는 방법을 생각을 가지고?

thrust::sort_by_key(dev_ptr_key,dev_ptr_key+noOfSelectedRows,dev_ptr_val,dev_ptr_val+noOfSelectedRows); 

당신은 키 범위의 시작을 전달하는 키 범위의 끝, 값 범위의 시작 : 당신의 매개 변수 목록과 일치 sort_by_key의 어떤 버전이 없습니다

답변

1

사전에 감사합니다 , 그리고 값 범위의 끝. 그러나 키 범위의 길이가 암시 적이기 때문에 값 범위의 끝을 전달할 필요가 없습니다 (아니요 버전의 sort_by_key가 값 범위의 끝을 전달할 수 있음).

대신을 시도해보십시오

thrust::sort_by_key(dev_ptr_key,dev_ptr_key+noOfSelectedRows,dev_ptr_val); 
+0

바보 같은 실수를, 문제가 해결 – user2390724

관련 문제