reverse#

Overloads#

reverse(exec, first, last)#

template<typename DerivedPolicy, typename BidirectionalIterator>
void thrust::reverse(
const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
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)).

The algorithm’s execution is parallelized as determined by exec.

The following code snippet demonstrates how to use reverse to reverse a device_vector of integers using the thrust::device execution policy for parallelization:

#include <thrust/reverse.h>
#include <thrust/execution_policy.h>
...
const int N = 6;
int data[N] = {0, 1, 2, 3, 4, 5};
thrust::device_vector<int> v(data, data + N);
thrust::reverse(thrust::device, v.begin(), v.end());
// v is now {5, 4, 3, 2, 1, 0}

See also

reverse_copy

See also

reverse_iterator

Parameters:
  • exec – The execution policy to use for parallelization.

  • first – The beginning of the range to reverse.

  • last – The end of the range to reverse.

Template Parameters:
  • DerivedPolicy – The name of the derived execution policy.

  • BidirectionalIterator – is a model of Bidirectional Iterator and BidirectionalIterator is mutable.

reverse(first, last)#

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)).

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

reverse_copy

See also

reverse_iterator

Parameters:
  • first – The beginning of the range to reverse.

  • last – The end of the range to reverse.

Template Parameters:

BidirectionalIterator – is a model of Bidirectional Iterator and BidirectionalIterator is mutable.