thrust::host_vector

Defined in thrust/host_vector.h

template<typename T, typename Alloc = std::allocator<T>>
class host_vector : public detail::vector_base<T, std::allocator<T>>

A host_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 host_vector may vary dynamically; memory management is automatic. The memory associated with a host_vector resides in memory accessible to hosts.

See also

device_vector

See also

universal_vector

Public Functions

inline host_vector()

This constructor creates an empty host_vector.

inline host_vector(const Alloc &alloc)

This constructor creates an empty host_vector.

Parameters

alloc – The allocator to use by this host_vector.

inline ~host_vector()

The destructor erases the elements.

inline explicit host_vector(size_type n)

This constructor creates a host_vector with the given size.

Parameters

n – The number of elements to initially create.

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

This constructor creates a host_vector with the given size.

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

  • alloc – The allocator to use by this host_vector.

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

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

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

  • value – An element to copy.

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

This constructor creates a host_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 host_vector.

inline host_vector(const host_vector &v)

Copy constructor copies from an exemplar host_vector.

Parameters

v – The host_vector to copy.

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

Copy constructor copies from an exemplar host_vector.

Parameters
inline host_vector(host_vector &&v)

Move constructor moves from another host_vector.

Parameters

v – The host_vector to move.

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

Move constructor moves from another host_vector.

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

Assign operator copies from an exemplar host_vector.

Parameters

v – The host_vector to copy.

inline host_vector &operator=(host_vector &&v)

Move assign operator moves from another host_vector.

Parameters

v – The host_vector to move.

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

Copy constructor copies from an exemplar host_vector with different type.

Parameters

v – The host_vector to copy.

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

Assign operator copies from an exemplar host_vector with different type.

Parameters

v – The host_vector to copy.

template<typename OtherT, typename OtherAlloc>
inline host_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 host_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 host_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 host_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 host_vector(std::initializer_list<T> il)

This constructor builds a host_vector from an intializer_list.

Parameters

il – The intializer_list.

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

This constructor builds a host_vector from an intializer_list.

Parameters
  • il – The intializer_list.

  • alloc – The allocator to use by this host_vector.

inline host_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 host_vector(InputIterator first, InputIterator last)

This constructor builds a host_vector from a range.

Parameters
  • first – The beginning of the range.

  • last – The end of the range.

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

This constructor builds a host_vector from a range.

Parameters
  • first – The beginning of the range.

  • last – The end of the range.

  • alloc – The allocator to use by this host_vector.

Friends

inline friend void swap(host_vector &a, host_vector &b) noexcept(noexcept(a.swap(b)))

Exchanges the values of two vectors. x The first host_vector of interest. y The second host_vector of interest.