Plasma Engine  2.0
Loading...
Searching...
No Matches
plDeque< T, AllocatorWrapper, Construct > Class Template Reference

#include <Deque.h>

Inheritance diagram for plDeque< T, AllocatorWrapper, Construct >:

Public Member Functions

 plDeque (plAllocator *pAllocator)
 
 plDeque (const plDeque< T, AllocatorWrapper, Construct > &other)
 
 plDeque (const plDequeBase< T, Construct > &other)
 
 plDeque (plDeque< T, AllocatorWrapper, Construct > &&other)
 
 plDeque (plDequeBase< T, Construct > &&other)
 
void operator= (const plDeque< T, AllocatorWrapper, Construct > &rhs)
 
void operator= (const plDequeBase< T, Construct > &rhs)
 
void operator= (plDeque< T, AllocatorWrapper, Construct > &&rhs)
 
void operator= (plDequeBase< T, Construct > &&rhs)
 
- Public Member Functions inherited from plDequeBase< T, true >
void Clear ()
 Destructs all elements and sets the count to zero. Does not deallocate any data.
 
void Reserve (plUInt32 uiCount)
 Rearranges the internal data structures such that the amount of reserved elements can be appended with as few allocations, as possible.
 
void Compact ()
 This function deallocates as much memory as possible to shrink the deque to the bare minimum size that it needs to work.
 
void Swap (plDequeBase< T, Construct > &other)
 swaps the contents of this deque with another one
 
void SetCount (plUInt32 uiCount)
 Sets the number of active elements in the deque. All new elements are default constructed. If the deque is shrunk, elements at the end of the deque are destructed.
 
void SetCountUninitialized (plUInt32 uiCount)
 \Same as SetCount(), but new elements do not get default constructed.
 
void EnsureCount (plUInt32 uiCount)
 Ensures the container has at least uiCount elements. Ie. calls SetCount() if the container has fewer elements, does nothing otherwise.
 
T & operator[] (plUInt32 uiIndex)
 Accesses the n-th element in the deque.
 
const T & operator[] (plUInt32 uiIndex) const
 Accesses the n-th element in the deque.
 
T & ExpandAndGetRef ()
 Grows the deque by one element and returns a reference to the newly created element.
 
void PushBack ()
 Adds one default constructed element to the back of the deque.
 
void PushBack (const T &element)
 Adds one element to the back of the deque.
 
void PushBack (T &&value)
 Adds one element at the end of the deque.
 
void PopBack (plUInt32 uiElements=1)
 Removes the last element from the deque.
 
void PushFront (const T &element)
 Adds one element to the front of the deque.
 
void PushFront (T &&element)
 Adds one element to the front of the deque.
 
void PushFront ()
 Adds one default constructed element to the front of the deque.
 
void PopFront (plUInt32 uiElements=1)
 Removes the first element from the deque.
 
bool IsEmpty () const
 Checks whether no elements are active in the deque.
 
plUInt32 GetCount () const
 Returns the number of active elements in the deque.
 
const T & PeekFront () const
 Returns the first element.
 
T & PeekFront ()
 Returns the first element.
 
const T & PeekBack () const
 Returns the last element.
 
T & PeekBack ()
 Returns the last element.
 
bool Contains (const T &value) const
 Checks whether there is any element in the deque with the given value.
 
plUInt32 IndexOf (const T &value, plUInt32 uiStartIndex=0) const
 Returns the first index at which an element with the given value could be found or plInvalidIndex if nothing was found.
 
plUInt32 LastIndexOf (const T &value, plUInt32 uiStartIndex=plInvalidIndex) const
 Returns the last index at which an element with the given value could be found or plInvalidIndex if nothing was found.
 
void RemoveAtAndSwap (plUInt32 uiIndex)
 Removes the element at the given index and fills the gap with the last element in the deque.
 
void RemoveAtAndCopy (plUInt32 uiIndex)
 Removes the element at index and fills the gap by shifting all following elements.
 
bool RemoveAndCopy (const T &value)
 Removes the first occurrence of value and fills the gap by shifting all following elements.
 
bool RemoveAndSwap (const T &value)
 Removes the first occurrence of value and fills the gap with the last element in the deque.
 
void InsertAt (plUInt32 uiIndex, const T &value)
 Inserts value at index by shifting all following elements. Valid insert positions are [0; GetCount].
 
void Sort (const Comparer &comparer)
 Sort with explicit comparer.
 
void Sort ()
 Sort with default comparer.
 
plAllocatorGetAllocator () const
 Returns the allocator that is used by this instance.
 
plUInt32 GetContiguousRange (plUInt32 uiStartIndex) const
 Returns the number of elements after uiStartIndex that are stored in contiguous memory.
 
bool operator== (const plDequeBase< T, Construct > &rhs) const
 Comparison operator.
 
 PL_ADD_DEFAULT_OPERATOR_NOTEQUAL (const plDequeBase< T, Construct > &)
 
plUInt64 GetHeapMemoryUsage () const
 Returns the amount of bytes that are currently allocated on the heap.
 

Additional Inherited Members

- Public Types inherited from plDequeBase< T, true >
using const_iterator
 
using const_reverse_iterator
 
using iterator
 
using reverse_iterator
 
- Protected Member Functions inherited from plDequeBase< T, true >
 plDequeBase (plAllocator *pAllocator)
 No memory is allocated during construction.
 
 plDequeBase (const plDequeBase< T, Construct > &rhs, plAllocator *pAllocator)
 Constructs this deque by copying from rhs.
 
 plDequeBase (plDequeBase< T, Construct > &&rhs, plAllocator *pAllocator)
 Constructs this deque by moving from rhs.
 
 ~plDequeBase ()
 Destructor.
 
void operator= (const plDequeBase< T, Construct > &rhs)
 Assignment operator.
 
void operator= (plDequeBase< T, Construct > &&rhs)
 Move operator.
 

Detailed Description

template<typename T, typename AllocatorWrapper = plDefaultAllocatorWrapper, bool Construct = true>
class plDeque< T, AllocatorWrapper, Construct >
See also
plDequeBase

The documentation for this class was generated from the following files: