cub::ConstantInputIterator

Defined in cub/iterator/constant_input_iterator.cuh

template<typename ValueType, typename OffsetT = ptrdiff_t>
class ConstantInputIterator

A random-access input generator for dereferencing a sequence of homogeneous values.

Overview

  • Read references to a ConstantInputIterator always return the supplied constant of type ValueType.

  • Can be used with any data type.

  • Can be constructed, manipulated, dereferenced, and exchanged within and between host and device functions.

  • Compatible with Thrust API v1.7 or newer.

Snippet

The code snippet below illustrates the use of ConstantInputIterator to dereference a sequence of homogeneous doubles.

#include <cub/cub.cuh>   // or equivalently <cub/iterator/constant_input_iterator.cuh>

cub::ConstantInputIterator<double> itr(5.0);

printf("%f\n", itr[0]);      // 5.0
printf("%f\n", itr[1]);      // 5.0
printf("%f\n", itr[2]);      // 5.0
printf("%f\n", itr[50]);     // 5.0

Template Parameters
  • ValueType – The value type of this iterator

  • OffsetT – The difference type of this iterator (Default: ptrdiff_t)

Public Types

using self_type = ConstantInputIterator

My own type.

using difference_type = OffsetT

Type to express the result of subtracting one iterator from another.

using value_type = ValueType

The type of the element the iterator can point to.

using pointer = ValueType*

The type of a pointer to an element the iterator can point to.

using reference = ValueType

The type of a reference to an element the iterator can point to.

using iterator_category = typename THRUST_NS_QUALIFIER::detail::iterator_facade_category<THRUST_NS_QUALIFIER::any_system_tag, THRUST_NS_QUALIFIER::random_access_traversal_tag, value_type, reference>::type

The iterator category.

Public Functions

inline ConstantInputIterator(ValueType val, OffsetT offset = 0)
Parameters
  • val – Starting value for the iterator instance to report

  • offset – Base offset

inline self_type operator++(int)

Postfix increment.

inline self_type operator++()

Prefix increment.

inline reference operator*() const

Indirection.

template<typename Distance>
inline self_type operator+(Distance n) const

Addition.

template<typename Distance>
inline self_type &operator+=(Distance n)

Addition assignment.

template<typename Distance>
inline self_type operator-(Distance n) const

Subtraction.

template<typename Distance>
inline self_type &operator-=(Distance n)

Subtraction assignment.

inline difference_type operator-(self_type other) const

Distance.

template<typename Distance>
inline reference operator[](Distance) const

Array subscript.

inline pointer operator->()

Structure dereference.

inline bool operator==(const self_type &rhs) const

Equal to.

inline bool operator!=(const self_type &rhs) const

Not equal to.

Friends

inline friend std::ostream &operator<<(std::ostream &os, const self_type &itr)

ostream operator