thrust::tabulate_output_iterator#

template<typename BinaryFunction, typename System = use_default, typename DifferenceT = ptrdiff_t>
class tabulate_output_iterator : public thrust::iterator_adaptor<BinaryFunction, use_default, ptrdiff_t>#

tabulate_output_iterator is a special kind of output iterator which, whenever a value is assigned to a dereferenced iterator, calls the given callable with the index that corresponds to the offset of the dereferenced iterator and the assigned value.

The following code snippet demonstrated how to create a tabulate_output_iterator which prints the index and the assigned value.

#include <thrust/iterator/tabulate_output_iterator.h>

// note: functor inherits form binary function
struct print_op
{
  __host__ __device__
  void operator()(int index, float value) const
  {
    printf("%d: %f\n", index, value);
  }
};

int main()
{
  auto tabulate_it = thrust::make_tabulate_output_iterator(print_op{});

  tabulate_it[0] =  1.0f;    // prints: 0: 1.0
  tabulate_it[1] =  3.0f;    // prints: 1: 3.0
  tabulate_it[9] =  5.0f;    // prints: 9: 5.0
}

Public Types

using base_type = Base#

The type of iterator this iterator_adaptor's adapts.

Public Functions

tabulate_output_iterator() = default#
inline tabulate_output_iterator(BinaryFunction fun)#

This constructor takes as argument a BinaryFunction and copies it to a new tabulate_output_iterator.

Parameters:

fun – A BinaryFunction called whenever a value is assigned to this tabulate_output_iterator.

inline Base const &base() const#
Returns:

A const reference to the Base iterator this iterator_adaptor adapts.