RakNet  4.0
Public Member Functions | List of all members
DataStructures::List< list_type > Class Template Reference

Array based implementation of a list. More...

#include <DS_List.h>

Public Member Functions

 List ()
 Default constructor.
 
 List (const List &original_copy)
 Copy constructor.
 
Listoperator= (const List &original_copy)
 Assign one list to another.
 
list_type & operator[] (const unsigned int position) const
 Access an element by its index in the array.
 
list_type & Get (const unsigned int position) const
 Access an element by its index in the array.
 
void Push (const list_type &input, const char *file, unsigned int line)
 Push an element at the end of the stack.
 
list_type & Pop (void)
 Pop an element from the end of the stack.
 
void Insert (const list_type &input, const unsigned int position, const char *file, unsigned int line)
 Insert an element at position position in the list.
 
void Insert (const list_type &input, const char *file, unsigned int line)
 Insert at the end of the list.
 
void Replace (const list_type &input, const list_type filler, const unsigned int position, const char *file, unsigned int line)
 Replace the value at position by input.
 
void Replace (const list_type &input)
 Replace the last element of the list by input.
 
void RemoveAtIndex (const unsigned int position)
 Delete the element at position position.
 
void RemoveAtIndexFast (const unsigned int position)
 Delete the element at position position.
 
void RemoveFromEnd (const unsigned num=1)
 Delete the element at the end of the list.
 
unsigned int GetIndexOf (const list_type &input) const
 Returns the index of the specified item or MAX_UNSIGNED_LONG if not found.
 
unsigned int Size (void) const
 
void Clear (bool doNotDeallocateSmallBlocks, const char *file, unsigned int line)
 Clear the list.
 
void Preallocate (unsigned countNeeded, const char *file, unsigned int line)
 Preallocate the list, so it needs fewer reallocations at runtime.
 
void Compress (const char *file, unsigned int line)
 Frees overallocated members, to use the minimum memory necessary.
 

Detailed Description

template<class list_type>
class DataStructures::List< list_type >

Array based implementation of a list.

Note
ONLY USE THIS FOR SHALLOW COPIES. I don't bother with operator= to improve performance.

Constructor & Destructor Documentation

template<class list_type >
DataStructures::List< list_type >::List ( const List< list_type > &  original_copy)

Copy constructor.

Parameters
[in]original_copyThe list to duplicate

Member Function Documentation

template<class list_type >
void DataStructures::List< list_type >::Compress ( const char *  file,
unsigned int  line 
)

Frees overallocated members, to use the minimum memory necessary.

Attention
This is a slow operation
template<class list_type >
list_type & DataStructures::List< list_type >::Get ( const unsigned int  position) const
inline

Access an element by its index in the array.

Parameters
[in]positionThe index into the array.
Returns
The element at position position.
template<class list_type>
unsigned int DataStructures::List< list_type >::GetIndexOf ( const list_type &  input) const

Returns the index of the specified item or MAX_UNSIGNED_LONG if not found.

Parameters
[in]inputThe element to check for
Returns
The index or position of input in the list.
Return values
MAX_UNSIGNED_LONGThe object is not in the list
[Integer]The index of the element in the list
template<class list_type>
void DataStructures::List< list_type >::Insert ( const list_type &  input,
const unsigned int  position,
const char *  file,
unsigned int  line 
)

Insert an element at position position in the list.

Parameters
[in]inputThe new element.
[in]positionThe position of the new element.
template<class list_type>
void DataStructures::List< list_type >::Insert ( const list_type &  input,
const char *  file,
unsigned int  line 
)

Insert at the end of the list.

Parameters
[in]inputThe new element.
template<class list_type >
list_type & DataStructures::List< list_type >::operator[] ( const unsigned int  position) const
inline

Access an element by its index in the array.

Parameters
[in]positionThe index into the array.
Returns
The element at position position.
template<class list_type >
list_type & DataStructures::List< list_type >::Pop ( void  )
inline

Pop an element from the end of the stack.

Precondition
Size()>0
Returns
The element at the end.
template<class list_type>
void DataStructures::List< list_type >::Push ( const list_type &  input,
const char *  file,
unsigned int  line 
)

Push an element at the end of the stack.

Parameters
[in]inputThe new element.
template<class list_type >
void DataStructures::List< list_type >::RemoveAtIndex ( const unsigned int  position)

Delete the element at position position.

Parameters
[in]positionThe index of the element to delete
template<class list_type >
void DataStructures::List< list_type >::RemoveAtIndexFast ( const unsigned int  position)

Delete the element at position position.

Note
- swaps middle with end of list, only use if list order does not matter
Parameters
[in]positionThe index of the element to delete
template<class list_type>
void DataStructures::List< list_type >::Replace ( const list_type &  input,
const list_type  filler,
const unsigned int  position,
const char *  file,
unsigned int  line 
)
inline

Replace the value at position by input.

If the size of the list is less than position, it increase the capacity of the list and fill slot with filler.

Parameters
[in]inputThe element to replace at position position.
[in]fillerThe element use to fill new allocated capacity.
[in]positionThe position of input in the list.
template<class list_type>
void DataStructures::List< list_type >::Replace ( const list_type &  input)
inline

Replace the last element of the list by input.

Parameters
[in]inputThe element used to replace the last element.
template<class list_type >
unsigned int DataStructures::List< list_type >::Size ( void  ) const
inline
Returns
The number of elements in the list

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