deque< T, Allocator >#
|
stdgpu Latest
Efficient STL-like Data Structures on the GPU
|
stdgpu::deque< T, Allocator >
Detailed Description
template<typename T, typename Allocator = safe_device_allocator<T>>
class stdgpu::deque< T, Allocator >
class stdgpu::deque< T, Allocator >
A generic container similar to std::deque on the GPU.
- Template Parameters
-
T The type of the stored elements Allocator The allocator type
Differences to std::deque:
- index_type instead of size_type
- Manual allocation and destruction of container required
- max_size and capacity limited to initially allocated size
- No guaranteed valid state when reaching capacity limit
- Additional non-standard capacity functions full(), capacity(), data(), and valid()
- Some member functions missing
- operator[] uses the internal begin position and may be invalidated during concurrent push_front or pop_front operations
Public Types | |
| using | allocator_type = Allocator |
| using | const_pointer = const value_type * |
| using | const_reference = const value_type & |
| using | difference_type = std::ptrdiff_t |
| using | index_type = index_t |
| using | pointer = value_type * |
| using | reference = value_type & |
| using | value_type = T |
Public Member Functions | |
| deque () noexcept=default | |
| STDGPU_DEVICE_ONLY reference | at (const index_type n) |
| STDGPU_DEVICE_ONLY const_reference | at (const index_type n) const |
| STDGPU_DEVICE_ONLY reference | back () |
| STDGPU_DEVICE_ONLY const_reference | back () const |
| STDGPU_HOST_DEVICE index_t | capacity () const noexcept |
| void | clear () |
| template<typename ExecutionPolicy , STDGPU_DETAIL_OVERLOAD_IF(is_execution_policy_v< remove_cvref_t< ExecutionPolicy > >) > | |
| void | clear (ExecutionPolicy &&policy) |
| const T * | data () const noexcept |
| T * | data () noexcept |
| stdgpu::device_indexed_range< T > | device_range () |
| stdgpu::device_indexed_range< const T > | device_range () const |
| template<typename ExecutionPolicy , STDGPU_DETAIL_OVERLOAD_IF(is_execution_policy_v< remove_cvref_t< ExecutionPolicy > >) > | |
| stdgpu::device_indexed_range< T > | device_range (ExecutionPolicy &&policy) |
| template<typename ExecutionPolicy , STDGPU_DETAIL_OVERLOAD_IF(is_execution_policy_v< remove_cvref_t< ExecutionPolicy > >) > | |
| stdgpu::device_indexed_range< const T > | device_range (ExecutionPolicy &&policy) const |
| template<class... Args> | |
| STDGPU_DEVICE_ONLY bool | emplace_back (Args &&... args) |
| template<class... Args> | |
| STDGPU_DEVICE_ONLY bool | emplace_front (Args &&... args) |
| STDGPU_HOST_DEVICE bool | empty () const |
| template<typename ExecutionPolicy , STDGPU_DETAIL_OVERLOAD_IF(is_execution_policy_v< remove_cvref_t< ExecutionPolicy > >) > | |
| bool | empty (ExecutionPolicy &&policy) const |
| STDGPU_DEVICE_ONLY reference | front () |
| STDGPU_DEVICE_ONLY const_reference | front () const |
| STDGPU_HOST_DEVICE bool | full () const |
| template<typename ExecutionPolicy , STDGPU_DETAIL_OVERLOAD_IF(is_execution_policy_v< remove_cvref_t< ExecutionPolicy > >) > | |
| bool | full (ExecutionPolicy &&policy) const |
| STDGPU_HOST_DEVICE allocator_type | get_allocator () const noexcept |
| STDGPU_HOST_DEVICE index_t | max_size () const noexcept |
| STDGPU_DEVICE_ONLY reference | operator[] (const index_type n) |
| STDGPU_DEVICE_ONLY const_reference | operator[] (const index_type n) const |
| STDGPU_DEVICE_ONLY pair< T, bool > | pop_back () |
| STDGPU_DEVICE_ONLY pair< T, bool > | pop_front () |
| STDGPU_DEVICE_ONLY bool | push_back (const T &element) |
| STDGPU_DEVICE_ONLY bool | push_front (const T &element) |
| void | shrink_to_fit () |
| STDGPU_HOST_DEVICE index_t | size () const |
| template<typename ExecutionPolicy , STDGPU_DETAIL_OVERLOAD_IF(is_execution_policy_v< remove_cvref_t< ExecutionPolicy > >) > | |
| index_t | size (ExecutionPolicy &&policy) const |
| bool | valid () const |
| template<typename ExecutionPolicy , STDGPU_DETAIL_OVERLOAD_IF(is_execution_policy_v< remove_cvref_t< ExecutionPolicy > >) > | |
| bool | valid (ExecutionPolicy &&policy) const |
Static Public Member Functions | |
| static deque< T, Allocator > | createDeviceObject (const index_t &capacity, const Allocator &allocator=Allocator()) |
| template<typename ExecutionPolicy , STDGPU_DETAIL_OVERLOAD_IF(is_execution_policy_v< remove_cvref_t< ExecutionPolicy > >) > | |
| static deque< T, Allocator > | createDeviceObject (ExecutionPolicy &&policy, const index_t &capacity, const Allocator &allocator=Allocator()) |
| static void | destroyDeviceObject (deque< T, Allocator > &device_object) |
| template<typename ExecutionPolicy , STDGPU_DETAIL_OVERLOAD_IF(is_execution_policy_v< remove_cvref_t< ExecutionPolicy > >) > | |
| static void | destroyDeviceObject (ExecutionPolicy &&policy, deque< T, Allocator > &device_object) |
Generated by