В настоящее время я пытаюсь использовать библиотеку Thrust, и у меня возникают проблемы с возвращаемыми типами.
device_vector<int> input(5);
input[0] = 0;
input[1] = 2;
input[2] = 5;
input[3] = 7;
input[4] = 8;
pair<int*, int*> result= minmax_element(input.begin(), input.end());
дает ошибку:
error : no suitable conversion function from "const thrust::detail::normal_iterator<thrust::device_ptr<int>>" to "int *" exists
Может ли кто-нибудь объяснить мне, как определить, каким должен быть тип возврата?
согласно документации возвращаемый тип
thrust::pair<ForwardIterator,ForwardIterator>
Однако это не работает для меня, может кто-нибудь объяснить!
Спасибо!
result
правильным типом? Даже в стандартной библиотеке C++ нет неявного преобразования изvector<T>::iterator
вT*
. - person Kerrek SB   schedule 25.07.2011int
похож, но не совсем на указатель наint
, я думаю, вам это понятно? - person leftaroundabout   schedule 25.07.2011int*
— этоint*
. Никто не говорит, что они связаны, так что не ходите вокруг да около, притворяясь, что это так. (Не сомневайтесь в деталях реализации. Это не ваше дело.) - person Kerrek SB   schedule 25.07.2011operator*
. - person leftaroundabout   schedule 25.07.2011