Вы можете уменьшить постоянное значение для каждого элемента device_vector
, комбинируя for_each
с выражением-заполнителем:
#include <thrust/functional.h>
...
using thrust::placeholders;
thrust::for_each(vec.begin(), vec.end(), _1 -= val);
Необычный синтаксис _1 -= val
означает создание безымянного функтора, задача которого - уменьшить свой первый аргумент на val
. _1
живет в пространстве имен thrust::placeholders
, к которому мы имеем доступ через директиву using thrust::placeholders
.
Вы также можете сделать это, комбинируя for_each
или transform
с пользовательским функтором, который вы предоставили сами, но он более многословен.