thrust
Modules | Functions
Iterators

Modules

 Fancy Iterators
 
 Iterator Tags
 

Functions

template<typename InputIterator , typename Distance >
__host__ __device__ void thrust::advance (InputIterator &i, Distance n)
 
template<typename InputIterator >
__host__ __device__
thrust::iterator_traits
< InputIterator >
::difference_type 
thrust::distance (InputIterator first, InputIterator last)
 

Detailed Description

Function Documentation

template<typename InputIterator , typename Distance >
__host__ __device__ void thrust::advance ( InputIterator &  i,
Distance  n 
)

advance(i, n) increments the iterator i by the distance n. If n > 0 it is equivalent to executing ++i n times, and if n < 0 it is equivalent to executing –i n times. If n == 0, the call has no effect.

Parameters
iThe iterator to be advanced.
nThe distance by which to advance the iterator.
Template Parameters
InputIteratoris a model of Input Iterator.
Distanceis an integral type that is convertible to InputIterator's distance type.
Precondition
n shall be negative only for bidirectional and random access iterators.

The following code snippet demonstrates how to use advance to increment an iterator a given number of times.

#include <thrust/advance.h>
...
thrust::device_vector<int> vec(13);
thrust::advance(iter, 7);
// iter - vec.begin() == 7
See Also
http://www.sgi.com/tech/stl/advance.html

Referenced by thrust::iterator_facade< Derived, Value, System, Traversal, Reference, Difference >::operator+=(), and thrust::iterator_facade< Derived, Value, System, Traversal, Reference, Difference >::operator-=().

template<typename InputIterator >
__host__ __device__ thrust::iterator_traits<InputIterator>::difference_type thrust::distance ( InputIterator  first,
InputIterator  last 
)
inline

distance finds the distance between first and last, i.e. the number of times that first must be incremented until it is equal to last.

Parameters
firstThe beginning of an input range of interest.
lastThe end of an input range of interest.
Returns
The distance between the beginning and end of the input range.
Template Parameters
InputIteratoris a model of Input Iterator.
Precondition
If InputIterator meets the requirements of random access iterator, last shall be reachable from first or first shall be reachable from last; otherwise, last shall be reachable from first.

The following code snippet demonstrates how to use distance to compute the distance to one iterator from another.

...
thrust::device_vector<int> vec(13);
int d = thrust::distance(iter1, iter2);
// d is 7
See Also
http://www.sgi.com/tech/stl/distance.html