# DataStructures::List< list_type > Class Template Reference

Array based implementation of a list. More...

`#include <DS_List.h>`

List of all members.

## Public Member Functions
| List ()
| Default constructor.
| List (const List &original_copy)
| Copy constructor.
List & | operator= (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 | ) | `[inline]`

Copy constructor.

Parameters:

  `[in]` | original_copy | The list to duplicate

## Member Function Documentation

template<class list_type >

void DataStructures::List< list_type >::Compress | ( | const char * | file,
|  | unsigned int | line |
| ) |  |  | `[inline]`

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]` | position | The 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`[inline]`

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

Parameters:

  `[in]` | input | The element to check for

Returns:
  The index or position of input in the list.

Return values:

  | MAX_UNSIGNED_LONG | The 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 char * | file,
|  | unsigned int | line |
| ) |  |  | `[inline]`

Insert at the end of the list.

Parameters:

  `[in]` | input | The new element.

template<class list_type >

void DataStructures::List< list_type >::Insert | ( | const list_type & | input,
|  | const unsigned int | position,
|  | const char * | file,
|  | unsigned int | line |
| ) |  |  | `[inline]`

Insert an element at position position in the list.

Parameters:

  `[in]` | input | The new element.
  `[in]` | position | The position of the 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]` | position | The 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 |
| ) |  |  | `[inline]`

Push an element at the end of the stack.

Parameters:

  `[in]` | input | The new element.

template<class list_type >

void DataStructures::List< list_type >::RemoveAtIndex | ( | const unsigned int | position | ) | `[inline]`

Delete the element at position position.

Parameters:

  `[in]` | position | The index of the element to delete

template<class list_type >

void DataStructures::List< list_type >::RemoveAtIndexFast | ( | const unsigned int | position | ) | `[inline]`

Delete the element at position position.

Note:
  - swaps middle with end of list, only use if list order does not matter

Parameters:

  `[in]` | position | The index of the element to delete

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]` | input | The element used to replace the last element.

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]` | input | The element to replace at position position.
  `[in]` | filler | The element use to fill new allocated capacity.
  `[in]` | position | The position of input in the list.

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:

- d:/RakNet-3.x/Source/DS_List.h