thrust::copy
Defined in thrust/copy.h
- 
template<typename InputIterator, typename OutputIterator>
 OutputIterator thrust::copy(InputIterator first, InputIterator last, OutputIterator result)
- copycopies elements from the range [- first,- last) to the range [- result,- result+ (- last-- first)). That is, it performs the assignments *- result= *- first, *(- result+- 1) = *(- first+- 1), and so on. Generally, for every integer- nfrom- 0to- last-- first,- copyperforms the assignment *(- result+- n) = *(- first+- n). Unlike- std::copy,- copyoffers no guarantee on order of operation. As a result, calling- copywith overlapping source and destination ranges has undefined behavior.- The return value is - result+ (- last-- first).- The following code snippet demonstrates how to use - copyto copy from one range to another.- #include <thrust/copy.h> #include <thrust/device_vector.h> ... thrust::device_vector<int> vec0(100); thrust::device_vector<int> vec1(100); ... thrust::copy(vec0.begin(), vec0.end(), vec1.begin()); // vec1 is now a copy of vec0 - Parameters
- first – The beginning of the sequence to copy. 
- last – The end of the sequence to copy. 
- result – The destination sequence. 
 
- Template Parameters
- InputIterator – must be a model of Input Iterator and - InputIterator's- value_typemust be convertible to- OutputIterator's- value_type.
- OutputIterator – must be a model of Output Iterator. 
 
- Returns
- The end of the destination sequence. 
- Pre
- resultmay be equal to- first, but- resultshall not be in the range- [first, last)otherwise.