thrust

◆ reverse() [2/2]

template<typename BidirectionalIterator >
void thrust::reverse ( BidirectionalIterator  first,
BidirectionalIterator  last 
)

reverse reverses a range. That is: for every i such that 0 <= i <= (last - first) / 2, it exchanges *(first + i) and *(last - (i + 1)).

Parameters
firstThe beginning of the range to reverse.
lastThe end of the range to reverse.
Template Parameters
BidirectionalIteratoris a model of Bidirectional Iterator and BidirectionalIterator is mutable.

The following code snippet demonstrates how to use reverse to reverse a device_vector of integers.

#include <thrust/reverse.h>
...
const int N = 6;
int data[N] = {0, 1, 2, 3, 4, 5};
thrust::device_vector<int> v(data, data + N);
thrust::reverse(v.begin(), v.end());
// v is now {5, 4, 3, 2, 1, 0}
See also
http://www.sgi.com/tech/stl/reverse.html
reverse_copy
reverse_iterator