thrust::device_vector

Defined in thrust/device_vector.h

template<typename T, typename Alloc = thrust::device_allocator<T>>
class device_vector : public detail::vector_base<T, thrust::device_allocator<T>>

A device_vector is a container that supports random access to elements, constant time removal of elements at the end, and linear time insertion and removal of elements at the beginning or in the middle. The number of elements in a device_vector may vary dynamically; memory management is automatic. The memory associated with a device_vector resides in the memory accessible to devices.

See also

device_allocator

See also

host_vector

See also

universal_vector

Public Functions

inline device_vector()

This constructor creates an empty device_vector.

inline device_vector(const Alloc &alloc)

This constructor creates an empty device_vector.

Parameters

alloc – The allocator to use by this device_vector.

inline ~device_vector()

The destructor erases the elements.

inline explicit device_vector(size_type n)

This constructor creates a device_vector with the given size.

Parameters

n – The number of elements to initially create.

inline explicit device_vector(size_type n, const Alloc &alloc)

This constructor creates a device_vector with the given size.

Parameters
  • n – The number of elements to initially create.

  • alloc – The allocator to use by this device_vector.

inline explicit device_vector(size_type n, const value_type &value)

This constructor creates a device_vector with copies of an exemplar element.

Parameters
  • n – The number of elements to initially create.

  • value – An element to copy.

inline explicit device_vector(size_type n, const value_type &value, const Alloc &alloc)

This constructor creates a device_vector with copies of an exemplar element.

Parameters
  • n – The number of elements to initially create.

  • value – An element to copy.

  • alloc – The allocator to use by this device_vector.

inline device_vector(const device_vector &v)

Copy constructor copies from an exemplar device_vector.

Parameters

v – The device_vector to copy.

inline device_vector(const device_vector &v, const Alloc &alloc)

Copy constructor copies from an exemplar device_vector.

Parameters
inline device_vector(device_vector &&v)

Move constructor moves from another device_vector.

Parameters

v – The device_vector to move.

inline device_vector(device_vector &&v, const Alloc &alloc)

Move constructor moves from another device_vector.

Parameters
inline device_vector &operator=(const device_vector &v)

Copy assign operator copies another device_vector with the same type.

Parameters

v – The device_vector to copy.

inline device_vector &operator=(device_vector &&v)

Move assign operator moves from another device_vector.

Parameters

v – The device_vector to move.

template<typename OtherT, typename OtherAlloc>
inline explicit device_vector(const device_vector<OtherT, OtherAlloc> &v)

Copy constructor copies from an exemplar device_vector with different type.

Parameters

v – The device_vector to copy.

template<typename OtherT, typename OtherAlloc>
inline device_vector &operator=(const device_vector<OtherT, OtherAlloc> &v)

Assign operator copies from an exemplar device_vector with different type.

Parameters

v – The device_vector to copy.

template<typename OtherT, typename OtherAlloc>
inline device_vector(const std::vector<OtherT, OtherAlloc> &v)

Copy constructor copies from an exemplar std::vector.

Parameters

v – The std::vector to copy.

template<typename OtherT, typename OtherAlloc>
inline device_vector &operator=(const std::vector<OtherT, OtherAlloc> &v)

Assign operator copies from an exemplar std::vector.

Parameters

v – The std::vector to copy.

template<typename OtherT, typename OtherAlloc>
inline device_vector(const detail::vector_base<OtherT, OtherAlloc> &v)

Copy construct from a vector_base whose element type is convertible to T.

Parameters

v – The vector_base to copy.

template<typename OtherT, typename OtherAlloc>
inline device_vector &operator=(const detail::vector_base<OtherT, OtherAlloc> &v)

Assign a vector_base whose element type is convertible to T.

Parameters

v – The vector_base to copy.

inline device_vector(std::initializer_list<T> il)

This constructor builds a device_vector from an intializer_list.

Parameters

il – The intializer_list.

inline device_vector(std::initializer_list<T> il, const Alloc &alloc)

This constructor builds a device_vector from an intializer_list.

Parameters
  • il – The intializer_list.

  • alloc – The allocator to use by this device_vector.

inline device_vector &operator=(std::initializer_list<T> il)

Assign an intializer_list with a matching element type

Parameters

il – The intializer_list.

template<typename InputIterator>
inline device_vector(InputIterator first, InputIterator last)

This constructor builds a device_vector from a range.

Parameters
  • first – The beginning of the range.

  • last – The end of the range.

template<typename InputIterator>
inline device_vector(InputIterator first, InputIterator last, const Alloc &alloc)

This constructor builds a device_vector from a range.

Parameters
  • first – The beginning of the range.

  • last – The end of the range.

  • alloc – The allocator to use by this device_vector.