replace#

Overloads#

replace(exec, first, last, old_value, new_value)#

template<typename DerivedPolicy, typename ForwardIterator, typename T>
void thrust::replace(
const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
ForwardIterator first,
ForwardIterator last,
const T &old_value,
const T &new_value,
)#

replace replaces every element in the range [first, last) equal to old_value with new_value. That is: for every iterator i, if *i == old_value then it performs the assignment *i = new_value.

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

The following code snippet demonstrates how to use replace to replace a value of interest in a device_vector with another using the thrust::device execution policy for parallelization:

#include <thrust/replace.h>
#include <thrust/device_vector.h>
#include <thrust/execution_policy.h>

...

thrust::device_vector<int> A(4);
A[0] = 1;
A[1] = 2;
A[2] = 3;
A[3] = 1;

thrust::replace(thrust::device, A.begin(), A.end(), 1, 99);

// A contains [99, 2, 3, 99]

See also

replace_if

See also

replace_copy

See also

replace_copy_if

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

  • first – The beginning of the sequence of interest.

  • last – The end of the sequence of interest.

  • old_value – The value to replace.

  • new_value – The new value to replace old_value.

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

  • ForwardIterator – is a model of Forward Iterator, and ForwardIterator is mutable.

  • T – is a model of Assignable, T is a model of EqualityComparable, objects of T may be compared for equality with objects of ForwardIterator's value_type, and T is convertible to ForwardIterator's value_type.

replace(first, last, old_value, new_value)#

template<typename ForwardIterator, typename T>
void thrust::replace(
ForwardIterator first,
ForwardIterator last,
const T &old_value,
const T &new_value,
)#

replace replaces every element in the range [first, last) equal to old_value with new_value. That is: for every iterator i, if *i == old_value then it performs the assignment *i = new_value.

The following code snippet demonstrates how to use replace to replace a value of interest in a device_vector with another.

#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::replace(A.begin(), A.end(), 1, 99);

// A contains [99, 2, 3, 99]

See also

replace_if

See also

replace_copy

See also

replace_copy_if

Parameters:
  • first – The beginning of the sequence of interest.

  • last – The end of the sequence of interest.

  • old_value – The value to replace.

  • new_value – The new value to replace old_value.

Template Parameters:
  • ForwardIterator – is a model of Forward Iterator, and ForwardIterator is mutable.

  • T – is a model of Assignable, T is a model of EqualityComparable, objects of T may be compared for equality with objects of ForwardIterator's value_type, and T is convertible to ForwardIterator's value_type.