|
AZ_FORCE_INLINE | deque (const Allocator &allocator) |
|
AZ_FORCE_INLINE | deque (size_type numElements) |
|
AZ_FORCE_INLINE | deque (size_type numElements, const value_type &value) |
|
AZ_FORCE_INLINE | deque (size_type numElements, const value_type &value, const Allocator &allocator) |
|
AZ_FORCE_INLINE | deque (const this_type &rhs) |
|
template<class InputIterator > |
AZ_FORCE_INLINE | deque (InputIterator first, InputIterator last) |
|
template<class InputIterator > |
AZ_FORCE_INLINE | deque (InputIterator first, InputIterator last, const Allocator &allocator) |
|
| deque (std::initializer_list< T > ilist, const Allocator &alloc=Allocator()) |
|
this_type & | operator= (const this_type &rhs) |
|
AZ_FORCE_INLINE iterator | begin () |
|
AZ_FORCE_INLINE const_iterator | begin () const |
|
AZ_FORCE_INLINE iterator | end () |
|
AZ_FORCE_INLINE const_iterator | end () const |
|
AZ_FORCE_INLINE reverse_iterator | rbegin () |
|
AZ_FORCE_INLINE const_reverse_iterator | rbegin () const |
|
AZ_FORCE_INLINE reverse_iterator | rend () |
|
AZ_FORCE_INLINE const_reverse_iterator | rend () const |
|
AZ_FORCE_INLINE void | resize (size_type newSize) |
|
AZ_FORCE_INLINE void | resize (size_type newSize, const value_type &value) |
|
AZ_FORCE_INLINE size_type | size () const |
|
AZ_FORCE_INLINE size_type | max_size () const |
|
AZ_FORCE_INLINE bool | empty () const |
|
AZ_FORCE_INLINE const_reference | at (size_type offset) const |
|
AZ_FORCE_INLINE reference | at (size_type offset) |
|
AZ_FORCE_INLINE const_reference | operator[] (size_type offset) const |
|
AZ_FORCE_INLINE reference | operator[] (size_type offset) |
|
AZ_FORCE_INLINE const_reference | front () const |
|
AZ_FORCE_INLINE reference | front () |
|
AZ_FORCE_INLINE const_reference | back () const |
|
AZ_FORCE_INLINE reference | back () |
|
void | push_front (const value_type &value) |
|
void | pop_front () |
|
void | push_back (const value_type &value) |
|
void | pop_back () |
|
AZ_FORCE_INLINE void | assign (size_type numElements, const value_type &value) |
|
template<class InputIterator > |
AZ_FORCE_INLINE void | assign (InputIterator first, InputIterator last) |
|
iterator | insert (const_iterator insertPos, const value_type &value) |
|
void | insert (const_iterator insertPos, size_type numElements, const value_type &value) |
|
AZ_FORCE_INLINE void | insert (const_iterator insertPos, std::initializer_list< value_type > list) |
|
template<class InputIterator > |
AZ_FORCE_INLINE void | insert (const_iterator insertPos, InputIterator first, InputIterator last) |
|
AZ_FORCE_INLINE iterator | erase (iterator erasePos) |
|
AZ_INLINE iterator | erase (const_iterator constFirst, const_iterator constLast) |
|
void | clear () |
|
void | swap (this_type &rhs) |
|
| deque (this_type &&rhs) |
|
this_type & | operator= (this_type &&rhs) |
|
void | assign_rv (this_type &&rhs) |
|
void | push_front (value_type &&value) |
|
void | push_back (value_type &&value) |
|
template<class... Args> |
void | emplace_front (Args &&... args) |
|
template<class... Args> |
void | emplace_back (Args &&... args) |
|
template<class Args > |
iterator | insert (const_iterator pos, Args &&args) |
|
template<class... Args> |
iterator | emplace (const_iterator pos, Args &&... args) |
|
void | swap (this_type &&rhs) |
|
|
|
AZ_FORCE_INLINE allocator_type & | get_allocator () |
|
const AZ_FORCE_INLINE allocator_type & | get_allocator () const |
|
void | set_allocator (const allocator_type &allocator) |
| Set the vector allocator. If different than then current all elements will be reallocated.
|
|
bool | validate () const |
|
int | validate_iterator (const iterator &iter) const |
|
int | validate_iterator (const const_iterator &iter) const |
|
void | push_front () |
|
void | push_back () |
|
void | leak_and_reset () |
|
template<class T, class Allocator = AZStd::allocator, AZStd::size_t NumElementsPerBlock = AZStd::deque_block<sizeof(T)>::num_elements, AZStd::size_t MinMapSize = 8>
class AZStd::deque< T, Allocator, NumElementsPerBlock, MinMapSize >
The deque is complaint with CStd (23.2.1). In addition we introduce the following extensions.
- As you know Deque allocate memory in blocks. Each block has NumElementsPerBlock * sizeof(T) size. As extension you are allowed to control the number of elements per block or the minimal map size. This way you can get the optimal balance between memory usage and number of allocation. Unless speed is critical you should not worry about that too much and use the default settings. If you want to pool or just know the node size you can use deque::block_node_type.
Check the deque AZStdExamples.
- Attention
- If you customize the block and map sizes make sure that NumElementsPerBlock and MinMapSize are >= 1.