CUB
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups
Public Types | Public Methods | Friends | List of all members
cub::CountingInputIterator< ValueType, OffsetT > Class Template Reference

Detailed description

template< typename ValueType, typename OffsetT = ptrdiff_t>
class cub::CountingInputIterator< ValueType, OffsetT >

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

Overview
  • After initializing a CountingInputIteratorTto a certain integer base, read references at offset will return the value base + offset.
  • 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 CountingInputIteratorTto dereference a sequence of incrementing integers.
#include <cub/cub.cuh> // or equivalently <cub/iterator/counting_input_iterator.cuh>
printf("%d\n", itr[0]); // 5
printf("%d\n", itr[1]); // 6
printf("%d\n", itr[2]); // 7
printf("%d\n", itr[50]); // 55
Template Parameters
ValueTypeThe value type of this iterator
OffsetTThe difference type of this iterator (Default: ptrdiff_t)

Public Types

typedef CountingInputIterator self_type
 My own type.
 
typedef OffsetT difference_type
 Type to express the result of subtracting one iterator from another.
 
typedef ValueType value_type
 The type of the element the iterator can point to.
 
typedef ValueType * pointer
 The type of a pointer to an element the iterator can point to.
 
typedef ValueType reference
 The type of a reference to an element the iterator can point to.
 
typedef
std::random_access_iterator_tag 
iterator_category
 The iterator category.
 

Public Methods

__host__ __device__ __forceinline__ CountingInputIterator (const ValueType &val)
 Constructor. More...
 
__host__ __device__
__forceinline__ self_type 
operator++ (int)
 Postfix increment.
 
__host__ __device__
__forceinline__ self_type 
operator++ ()
 Prefix increment.
 
__host__ __device__
__forceinline__ reference 
operator* () const
 Indirection.
 
template<typename Distance >
__host__ __device__
__forceinline__ self_type 
operator+ (Distance n) const
 Addition.
 
template<typename Distance >
__host__ __device__
__forceinline__ self_type
operator+= (Distance n)
 Addition assignment.
 
template<typename Distance >
__host__ __device__
__forceinline__ self_type 
operator- (Distance n) const
 Subtraction.
 
template<typename Distance >
__host__ __device__
__forceinline__ self_type
operator-= (Distance n)
 Subtraction assignment.
 
__host__ __device__
__forceinline__
difference_type 
operator- (self_type other) const
 Distance.
 
template<typename Distance >
__host__ __device__
__forceinline__ reference 
operator[] (Distance n) const
 Array subscript.
 
__host__ __device__
__forceinline__ pointer 
operator-> ()
 Structure dereference.
 
__host__ __device__
__forceinline__ bool 
operator== (const self_type &rhs)
 Equal to.
 
__host__ __device__
__forceinline__ bool 
operator!= (const self_type &rhs)
 Not equal to.
 

Friends

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

Constructor & Destructor Documentation

template<typename ValueType, typename OffsetT = ptrdiff_t>
__host__ __device__ __forceinline__ cub::CountingInputIterator< ValueType, OffsetT >::CountingInputIterator ( const ValueType &  val)
inline

Constructor.

Parameters
valStarting value for the iterator instance to report

The documentation for this class was generated from the following file: