thrust::replace_copy
Defined in thrust/replace.h
- 
template<typename InputIterator, typename OutputIterator, typename T>
 OutputIterator thrust::replace_copy(InputIterator first, InputIterator last, OutputIterator result, const T &old_value, const T &new_value)
- replace_copycopies elements from the range- [first, last)to the range- [result, result + (last-first)), except that any element equal to- old_valueis not copied;- new_valueis copied instead.- More precisely, for every integer - nsuch that- 0 <= n < last-first,- replace_copyperforms the assignment- *(result+n) = new_valueif- *(first+n) == old_value, and- *(result+n) = *(first+n)otherwise.- #include <thrust/replace.h> #include <thrust/device_vector.h> ... thrust::device_vector<int> A(4); A[0] = 1; A[1] = 2; A[2] = 3; A[3] = 1; thrust::device_vector<int> B(4); thrust::replace_copy(A.begin(), A.end(), B.begin(), 1, 99); // B contains [99, 2, 3, 99] - See also - copy- See also - replace- See also - replace_if- See also - replace_copy_if- Parameters
- first – The beginning of the sequence to copy from. 
- last – The end of the sequence to copy from. 
- result – The beginning of the sequence to copy to. 
- old_value – The value to replace. 
- new_value – The replacement value for which - *i == old_valueevaluates to- true.
 
- Template Parameters
- InputIterator – is a model of Input Iterator. 
- OutputIterator – is a model of Output Iterator. 
- T – is a model of Assignable, - Tis a model of Equality Comparable,- Tmay be compared for equality with- InputIterator's- value_type, and- Tis convertible to- OutputIterator's- value_type.
 
- Returns
- result + (last-first)
- Pre
- firstmay equal- result, but the ranges- [first, last)and- [result, result + (last - first))shall not overlap otherwise.