#include <ArrayList.h>
So direct access is fast, but adding objects is not as fast as possible. If you add or remove objects, the array is automatically resized. To prevent the array from excessive reallocation, some extra cells are always held. They can be configured with the fill ratio attributes of the constructors. The class distinguished between the size, which is the number of reserved cells, and the count, which is the number of used cells.
Definition at line 45 of file ArrayList.h.
Public Member Functions | |
void | Append (ELEMENTTYPE *Element) |
Appends an element to the array. | |
void | AppendAll (const ArrayList< ELEMENTTYPE > *Elements) |
Appends all elements of another array list to this one. | |
ArrayList (long initSize, int minimumFillRatio, int desiredFillRatio) | |
Creates a new array list. | |
ArrayList (long initSize) | |
Creates a new array list. | |
ArrayList () | |
Creates a new array list. | |
virtual int | Compare (const ELEMENTTYPE *Element1, const ELEMENTTYPE *Element2) const |
Compares two elements and returns -1, if the first is less than the second, 0, if both elements are equal and 1, if the first is more than the second. | |
bool | Contains (const ELEMENTTYPE *Element, int(*compare)(const ELEMENTTYPE *Element1, const ELEMENTTYPE *Element2)) const |
Returns whether a given element is contained in this array. | |
bool | Contains (const ELEMENTTYPE *Element) const |
Returns whether a given element is contained in this array. | |
bool | Delete (ELEMENTTYPE *Element) |
Deletes a given element from the array. | |
bool | Delete (long from, long count) |
Deletes multiple elements at a given range. | |
bool | Delete (long nr) |
Deletes an element at a given position. | |
void | DeleteAll () |
Deletes all elements from the array. | |
bool | DeleteFirst () |
Deletes the first element from the array. | |
bool | DeleteLast () |
Deletes the last element from the array. | |
int | Find (const ELEMENTTYPE *Element, int(*compare)(const ELEMENTTYPE *Element1, const ELEMENTTYPE *Element2)) const |
Returns the 0-indexed position of a given element within the array list. | |
int | Find (const ELEMENTTYPE *Element) const |
Returns the 0-indexed position of a given element within the array list. | |
ELEMENTTYPE * | Get (long nr) const |
Returns the element at a given position. | |
long | GetCount () const |
Returns the number of used array cells. | |
int | GetDesiredFillRatio () const |
Returns the fill ratio after an array resize. | |
int | GetFillRatio () const |
Returns the current fill ratio. | |
ELEMENTTYPE * | GetFirst () const |
Returns the first element of the array. | |
ELEMENTTYPE * | GetLast () const |
Returns the last element of the array. | |
int | GetMinimumFillRatio () const |
Returns the minimum fill ratio for the array. | |
void | Insert (ELEMENTTYPE *Element, long nr) |
Inserts an element before a given position. | |
void | InsertAll (const ArrayList< ELEMENTTYPE > *Elements, long nr) |
Inserts all elements of another array list before a given position. | |
bool | IsEmpty () const |
Returns, whether there are no elements in the array. | |
void | Prepend (ELEMENTTYPE *Element) |
Prepends an element to the array. | |
void | PrependAll (const ArrayList< ELEMENTTYPE > *Elements) |
Prepends all elements of another array list to this one. | |
ELEMENTTYPE * | Replace (ELEMENTTYPE *NewElement, long nr) |
Replaces an element by another one. | |
void | Shuffle () |
Shuffles all entries randomly. | |
void | Sort (int(*compare)(const ELEMENTTYPE *Element1, const ELEMENTTYPE *Element2)) |
Sorts the elements in the array according to a given comparison function. | |
void | Sort () |
Sorts the elements in the array according to the Compare method. | |
bool | Unlink (long from, long count) |
Removes multiple elements from the array. | |
ELEMENTTYPE * | Unlink (ELEMENTTYPE *Element) |
Removes a given element from the array. | |
ELEMENTTYPE * | Unlink (long nr) |
Removes an element at a given position. | |
void | UnlinkAll () |
Removes all elements from the array without freeing them or returning them. | |
ELEMENTTYPE * | UnlinkFirst () |
Removes the first element from the array. | |
ELEMENTTYPE * | UnlinkLast () |
Removes the last element from the array. | |
virtual | ~ArrayList () |
Destroys the array list. | |
Private Member Functions | |
void | CheckSize (int newSize) |
Checks, if the array has to be resized, and resizes it if necessary. | |
void | Init (long initSize, int minimumFillRatio, int desiredFillRatio) |
Initializes the array. | |
void | Resize (long newSize) |
Resizes the array to a new size. | |
Private Attributes | |
long | Count |
The number of used array cells. | |
int | DesiredFillRatio |
The fill ratio after an array resize. | |
ELEMENTTYPE ** | Elements |
The object array itself. | |
long | InitSize |
The minimum and initial size of the array. | |
int | MinimumFillRatio |
The minimum fill ratio for the array. | |
long | Size |
The number of reserved array cells. |
|
Creates a new array list.
|
|
Creates a new array list.
|
|
Creates a new array list.
|
|
Destroys the array list. When deleting the array list, all contained elements are also freed. |
|
Appends an element to the array.
|
|
Appends all elements of another array list to this one.
|
|
Checks, if the array has to be resized, and resizes it if necessary.
|
|
Compares two elements and returns -1, if the first is less than the second, 0, if both elements are equal and 1, if the first is more than the second. This method is used for comparison in the sorting. Override this method to provide your own comparison.
|
|
Returns whether a given element is contained in this array. This method uses a given compare method to compare the elements.
|
|
Returns whether a given element is contained in this array. This method uses the Compare method to compare the elements.
|
|
Deletes a given element from the array. The element is searched, removed from the array and freed. If the element is not contained, nothing happens. If the element is contained multiple times, only one instance is deleted.
|
|
Deletes multiple elements at a given range. The elements are removed from the array and freed.
|
|
Deletes an element at a given position. The element is removed from the array and freed.
|
|
Deletes all elements from the array. All elements are removed from the array and freed. |
|
Deletes the first element from the array. The element is removed from the array and freed. If the array is empty, nothing happens.
|
|
Deletes the last element from the array. The element is removed from the array and freed. If the array is empty, nothing happens.
|
|
Returns the 0-indexed position of a given element within the array list. This method uses a given compare method to compare the elements.
|
|
Returns the 0-indexed position of a given element within the array list. This method uses the Compare method to compare the elements.
|
|
Returns the element at a given position.
|
|
Returns the number of used array cells. This is the number of added objects.
|
|
Returns the fill ratio after an array resize.
|
|
Returns the current fill ratio.
|
|
Returns the first element of the array. If the array is empty, the method returns NULL.
|
|
Returns the last element of the array. If the array is empty, the method returns NULL.
|
|
Returns the minimum fill ratio for the array.
|
|
Initializes the array.
|
|
Inserts an element before a given position. All elements at and after the position are moved by one.
|
|
Inserts all elements of another array list before a given position. All elements at and after the position are moved.
|
|
Returns, whether there are no elements in the array.
|
|
Prepends an element to the array.
|
|
Prepends all elements of another array list to this one.
|
|
Replaces an element by another one. The replaced element is not freed, but returned.
|
|
Resizes the array to a new size. The elements are preserved.
|
|
Shuffles all entries randomly.
|
|
Sorts the elements in the array according to a given comparison function. The whole array has a sorted order afterwards, but is not harmed at all in any other way. All elements remain the same.
|
|
Sorts the elements in the array according to the Compare method. The whole array has a sorted order afterwards, but is not harmed at all in any other way. All elements remain the same. |
|
Removes multiple elements from the array. The elements are not freed.
|
|
Removes a given element from the array. The element is not freed, but returned. If the element is not contained, nothing happens and the method returns NULL. If the element is contained multiple times, only one instance is unlinked.
|
|
Removes an element at a given position. The element is not freed, but returned.
|
|
Removes all elements from the array without freeing them or returning them.
|
|
Removes the first element from the array. The element is not freed, but returned. If the array is empty, nothing happens and the method returns NULL.
|
|
Removes the last element from the array. The element is not freed, but returned. If the array is empty, nothing happens and the method returns NULL.
|
|
The number of used array cells. This is the number of added objects. Definition at line 54 of file ArrayList.h. |
|
The fill ratio after an array resize. This happens, if all cells are used up, or if the fill ratio drops under the MinimumFillRatio value. The rest of the cell is reserved for further adding of objects. Definition at line 64 of file ArrayList.h. |
|
The object array itself.
Definition at line 69 of file ArrayList.h. |
|
The minimum and initial size of the array. This is the number of minimum reserved cells. Definition at line 75 of file ArrayList.h. |
|
The minimum fill ratio for the array. If the fill ratio drops under this value, it is resized to the DesiredFillRatio. Definition at line 89 of file ArrayList.h. |
|
The number of reserved array cells. This is not the number of used array cells.
Definition at line 96 of file ArrayList.h. |