Om
1.0.0
A universal framework for multimedia simulation
|
An array-based list class that uses a fixed-size local buffer for its elements. More...
#include <omShortArrayList.h>
Classes | |
class | ConstIterator |
An iterator class for an short array list which can't modify it. More... | |
class | Iterator |
Iterator class for an short array list. More... | |
Public Member Functions | |
ShortArrayList () | |
Create a new empty short short array list with the default capacity of 8 elements. More... | |
ShortArrayList (SizeType newCapacity) | |
Create a new short array list with its internal array initialized to the specified capacity. More... | |
ShortArrayList (const T *elements, SizeType newNumElements) | |
Create a new short array list with its internal array initialized with element from an external array. More... | |
ShortArrayList (const ShortArrayList &other) | |
Create a copy of an existing short array list. This is a deep copy. More... | |
template<SizeType otherLocalCapacity> | |
ShortArrayList (const ShortArrayList< T, otherLocalCapacity, SizeType > &other) | |
Create a copy of an existing short array list. This is a deep copy. More... | |
~ShortArrayList () | |
Destroy this short array list, releasing all internal state. More... | |
ShortArrayList & | operator= (const ShortArrayList &other) |
Assign the contents of one short array list to another, copying all elements. More... | |
template<Size otherLocalCapacity> | |
ShortArrayList< T, localCapacity, SizeType > & | operator= (const ShortArrayList< T, otherLocalCapacity, SizeType > &other) |
Assign the contents of one short array list to another, copying all elements. More... | |
template<SizeType otherLocalCapacity> | |
Bool | operator== (const ShortArrayList< T, otherLocalCapacity, SizeType > &other) const |
Return whether or not whether every entry in this list is equal to another list's entries. More... | |
template<SizeType otherLocalCapacity> | |
Bool | operator!= (const ShortArrayList< T, otherLocalCapacity > &other) const |
Return whether or not whether any entry in this list is not equal to another list's entries. More... | |
void | add (const T &newElement) |
Add an element to the end of the list. More... | |
void | addNew () |
Construct a new element at the end of the list. More... | |
template<typename P1 > | |
void | addNew (const P1 &p1) |
Construct a new element at the end of the list. More... | |
template<typename P1 , typename P2 > | |
void | addNew (const P1 &p1, const P2 &p2) |
Construct a new element at the end of the list. More... | |
template<typename P1 , typename P2 , typename P3 > | |
void | addNew (const P1 &p1, const P2 &p2, const P3 &p3) |
Construct a new element at the end of the list. More... | |
template<typename P1 , typename P2 , typename P3 , typename P4 > | |
void | addNew (const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4) |
Construct a new element at the end of the list. More... | |
template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 > | |
void | addNew (const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4, const P5 &p5) |
Construct a new element at the end of the list. More... | |
template<SizeType otherLocalCapacity> | |
void | addAll (const ShortArrayList< T, otherLocalCapacity > &list) |
Add the contents of one ShortArrayList to another. More... | |
void | addAll (const T *newArray, SizeType number) |
Add the contents of the specified array pointer to the end of the list. More... | |
Bool | insert (SizeType index, const T &newElement) |
Insert an element at the specified index of the list. More... | |
Bool | set (SizeType index, const T &newElement) |
Set an element at the specified index of the list to a new value. More... | |
Bool | removeAtIndex (SizeType index) |
Remove the element at the specified index, ordered version. More... | |
Bool | removeAtIndexUnordered (SizeType index) |
Remove the element at the specified index, unordered version. More... | |
Bool | remove (const T &object) |
Remove the first element equal to the parameter element, ordered version. More... | |
Bool | removeUnordered (const T &object) |
Remove the first element equal to the parameter element, unordered version. More... | |
Bool | removeLast () |
Remove the last element in the short array list. More... | |
SizeType | removeLast (SizeType number) |
Remove the last N elements from the short array list. More... | |
void | clear () |
Clear the contents of this short array list. More... | |
void | reset () |
Clear the contents of this short array list and reclaim the allocated memory. More... | |
void | reset (SizeType newCapacity) |
Clear the contents of this short array list and reclaim the allocated memory. More... | |
Bool | contains (const T &object) const |
Return whether or not the specified element is in this list. More... | |
Bool | getSizeType (const T &object, SizeType &index) const |
Get the index of the array element equal to the parameter object. More... | |
T & | get (SizeType index) |
Return the element at the specified index. More... | |
const T & | get (SizeType index) const |
Return the element at the specified index. More... | |
T & | getFirst () |
Return a reference to the first element in the short array list. More... | |
const T & | getFirst () const |
Return a const reference to the first element in the short array list. More... | |
T & | getLast () |
Return a reference to the last element in the short array list. More... | |
const T & | getLast () const |
Return a const reference to the last element in the short array list. More... | |
T & | operator() (SizeType index) |
Return the element at the specified index. More... | |
const T & | operator() (SizeType index) const |
Return the element at the specified index. More... | |
T & | operator[] (SizeType index) |
Return the element at the specified index. More... | |
const T & | operator[] (SizeType index) const |
Return the element at the specified index. More... | |
const T * | getPointer () const |
Return a const pointer to the beginning of the internal array. More... | |
T * | getPointer () |
Return a pointer to the beginning of the internal array. More... | |
Bool | isEmpty () const |
Return whether or not the short array list has any elements. More... | |
SizeType | getSize () const |
Get the number of elements in the short array list. More... | |
SizeType | getCapacity () const |
Get the current capacity of the short array list. More... | |
void | setCapacity (SizeType newCapacity) |
Set the capacity of the short array list. More... | |
Iterator | getIterator () |
Return an iterator for the short array list. More... | |
ConstIterator | getIterator () const |
Return a const iterator for the short array list. More... | |
template<Size localCapacity2> | |
ShortArrayList< T, localCapacity1, SizeType > & | operator= (const ShortArrayList< T, localCapacity2, SizeType > &other) |
An array-based list class that uses a fixed-size local buffer for its elements.
This fixed-size buffer doesn't require a dynamic allocation and so can improve both runtime cache performance (as well as reducing unnecessary allocations for short lists of elements). When the list grows beyond that initial fixed-size capacity, the elements are reallocated in a dynamic array, allowing the list to be any size.
This class can be useful anywhere an application only requires a few elements to be stored on average, and so the elements can be stored locally.
|
inline |
Create a new empty short short array list with the default capacity of 8 elements.
This is a lightweight operation and the short array list doesn't initialize or allocate any memory until an element is added to it.
|
inline |
Create a new short array list with its internal array initialized to the specified capacity.
|
inline |
Create a new short array list with its internal array initialized with element from an external array.
The initial capacity and size of the short array list is set to the number of elements that are to be copied from the given array.
elements | - an array of contiguous element objects from which to initialize this short array list. |
newNumElements | - the number of elements to copy from the element array. |
|
inline |
Create a copy of an existing short array list. This is a deep copy.
|
inline |
Create a copy of an existing short array list. This is a deep copy.
|
inline |
Destroy this short array list, releasing all internal state.
ShortArrayList< T, localCapacity, SizeType > & om::util::ShortArrayList< T, localCapacity, SizeType >::operator= | ( | const ShortArrayList< T, localCapacity, SizeType > & | other | ) |
Assign the contents of one short array list to another, copying all elements.
ShortArrayList<T,localCapacity,SizeType>& om::util::ShortArrayList< T, localCapacity, SizeType >::operator= | ( | const ShortArrayList< T, otherLocalCapacity, SizeType > & | other | ) |
Assign the contents of one short array list to another, copying all elements.
|
inline |
Return whether or not whether every entry in this list is equal to another list's entries.
|
inline |
Return whether or not whether any entry in this list is not equal to another list's entries.
|
inline |
Add an element to the end of the list.
If the capacity of the short array list is not great enough to hold the new element, then the internal array is reallocated to be double the size and all elements are copied to the new array.
newElement | - the new element to add to the end of the list |
|
inline |
Construct a new element at the end of the list.
If the capacity of the array list is not great enough to hold the new element, then the internal array is reallocated to be double the size and all elements are copied to the new array.
|
inline |
Construct a new element at the end of the list.
|
inline |
Construct a new element at the end of the list.
|
inline |
Construct a new element at the end of the list.
|
inline |
Construct a new element at the end of the list.
|
inline |
Construct a new element at the end of the list.
|
inline |
Add the contents of one ShortArrayList to another.
This method has the effect of adding each element of the given list to the end of this short array list in order.
list | - the list to be added to the end of this list |
|
inline |
Add the contents of the specified array pointer to the end of the list.
This method has the effect of adding each element of the given list to the end of this short array list in order.
Bool om::util::ShortArrayList< T, localCapacity, SizeType >::insert | ( | SizeType | index, |
const T & | newElement | ||
) |
Insert an element at the specified index of the list.
The method returns TRUE if the element was successfully inserted into the short array list. If the index is outside of the bounds of the short array list, then FALSE is returned, indicating that the element was not inserted. If needed, the short array list is resized to double its current size in order to hold the new element. This method has time complexity of O(n/2) because all subsequent elements in the short array list have to be moved towards the end of the list by one index.
index | - the index at which to insert the new element. |
newElement | - the new element to insert into the short array list. |
|
inline |
Set an element at the specified index of the list to a new value.
This method returns TRUE if the specified index is within the bounds of the short array list, indicating that the element was successfully set at that position in the short array list. Otherwise, FALSE is returned, indicating that the index was out of bounds of the short array list. This method has worst-case time complexity of O(1).
newElement | - the new element to set in the list. |
index | - the index at which to set the new element. |
|
inline |
Remove the element at the specified index, ordered version.
If the index is within the bounds of the list ( >= 0 && < getSizeType() ), then the list element at that index is removed and TRUE is returned, indicating that the remove operation was successful. Otherwise, FALSE is returned and the list is unaffected. The order of the list is unaffected, meaning that all of the elements after the removed element must be copied one index towards the beginning of the list. This gives the method an average case performance of O(n/2) where n is the number of elements in the short array list.
index | - the index of the list element to remove. |
|
inline |
Remove the element at the specified index, unordered version.
If the index is within the bounds of the list ( >= 0 && < getSizeType() ), then the list element at that index is removed and TRUE is returned, indicating that the remove operation was successful. Otherwise, FALSE is returned and the list is unaffected. The order of the list is affected when this method successfully removes the element. It works by replacing the element at the index to be removed with the last element in the list. This gives the method a worst case time complexity of O(1), that is much faster than the ordered remove methods.
index | - the index of the list element to remove. |
|
inline |
Remove the first element equal to the parameter element, ordered version.
If this element is found, then it is removed and TRUE is returned. Otherwise, FALSE is returned and the list is unaffected. The order of the list is unaffected, meaning that all of the elements after the removed element must be copied one index towards the beginning of the list. This gives the method an average case performance of O(n) where n is the number of elements in the short array list. This method's complexity is worse than the ordered index remove method because it must search through the list for the element and then copy all subsequent elements one position nearer to the start of the list.
object | - the list element to remove the first instance of. |
|
inline |
Remove the first element equal to the parameter element, unordered version.
If this element is found, then it is removed and TRUE is returned. Otherwise, FALSE is returned and the list is unaffected. The order of the list is affected when this method successfully removes the element. It works by replacing the element at the index to be removed with the last element in the list. This gives the method a worst case time complexity of O(n), that is much faster than the ordered remove methods (O(n^2)).
object | - the list element to remove the first instance of. |
|
inline |
Remove the last element in the short array list.
If the short array list has elements remaining in it, then the last element in the short array list is removed and TRUE is returned. If the short array list has no remaining elements, then FALSE is returned, indicating that the list was unchanged. This method has worst case O(1) time complexity.
|
inline |
Remove the last N elements from the short array list.
If the short array list has at least N elements remaining in it, then the last N elements in the short array list are removed and N is returned. If the short array list has less than N elements, then the list will be completely cleared, resulting in an empty list. The method returns the number of elements successfully removed.
|
inline |
Clear the contents of this short array list.
This method calls the destructors of all elements in the short array list and sets the number of elements to zero while maintaining the array's capacity.
|
inline |
Clear the contents of this short array list and reclaim the allocated memory.
This method performs the same function as the clear() method, but also deallocates the previously allocated internal array and reallocates it to an small initial starting size. Calling this method is equivalent to assigning a brand new short array list instance to this one.
|
inline |
Clear the contents of this short array list and reclaim the allocated memory.
This method performs the same function as the clear() method, but also deallocates the previously allocated internal array and reallocates it to a small initial starting size. Calling this method is equivalent to assigning a brand new short array list instance to this one. This version of the reset() method allows the caller to specify the new starting capacity of the short array list.
|
inline |
Return whether or not the specified element is in this list.
The method has average case O(n/2) time complexity, where n is the number of elements in the short array list. This method is here for convenience. It just calls the short array list's getSizeType() method, and tests to see if the return value is not equal to -1. It is recommended that if one wants the index of the element as well as whether or not it is contained in the list, they should use the getSizeType() method exclusively, and check the return value to make sure that the element is in the list. This avoids the double O(n/2) lookup that would be performed one naively called this method and then that method.
object | - the element to check to see if it is contained in the list. |
|
inline |
Get the index of the array element equal to the parameter object.
If the specified element is not found within the list, then FALSE is returned. Otherwise, FALSE is returned and the index of the element in the list is placed in the output index parameter.
object | - the object to find in the short array list. |
index | - a reference to the variable in which to place the index. |
|
inline |
Return the element at the specified index.
If the specified index is not within the valid bounds of the short array list, then an exception is thrown indicating an index out of bounds error occurred. This is the non-const version of the get() method, allowing modification of the element.
index | - the index of the desired element. |
|
inline |
Return the element at the specified index.
If the specified index is not within the valid bounds of the short array list, then an exception is thrown indicating an index out of bounds error occurred. This is the const version of the get() method, disallowing modification of the element.
index | - the index of the desired element. |
|
inline |
Return a reference to the first element in the short array list.
|
inline |
Return a const reference to the first element in the short array list.
|
inline |
Return a reference to the last element in the short array list.
|
inline |
Return a const reference to the last element in the short array list.
|
inline |
Return the element at the specified index.
If the specified index is not within the valid bounds of the short array list, then an exception is thrown indicating an index out of bounds error occurred. This is the const version of the operator (), disallowing modification of the element.
index | - the index of the desired element. |
|
inline |
Return the element at the specified index.
If the specified index is not within the valid bounds of the short array list, then an exception is thrown indicating an index out of bounds error occurred. This is the const version of the operator (), disallowing modification of the element.
index | - the index of the desired element. |
|
inline |
Return the element at the specified index.
If the specified index is not within the valid bounds of the short array list, then an exception is thrown indicating an index out of bounds error occurred.
index | - the index of the desired element. |
|
inline |
Return the element at the specified index.
If the specified index is not within the valid bounds of the short array list, then an exception is thrown indicating an index out of bounds error occurred. This is the const version of the operator [], disallowing modification of the element.
index | - the index of the desired element. |
|
inline |
Return a const pointer to the beginning of the internal array.
|
inline |
Return a pointer to the beginning of the internal array.
|
inline |
Return whether or not the short array list has any elements.
This method returns TRUE if the size of the short array list is greater than zero, and FALSE otherwise. This method is here for convenience.
|
inline |
Get the number of elements in the short array list.
|
inline |
Get the current capacity of the short array list.
The capacity is the maximum number of elements that the short array list can hold before it will have to resize its internal array.
|
inline |
Set the capacity of the short array list.
The capacity is the maximum number of elements that the short array list can hold before it will have to resize its internal array. The capacity of the short array list is set to the specified value unless this value is smaller than the number of elements in the short array list. If so, the capacity remains unchanged.
newCapacity | the desired capacity of the short array list. |
|
inline |
Return an iterator for the short array list.
The iterator serves to provide a way to efficiently iterate over the elements of the short array list. It is more useful for a linked list type of data structure, but it is provided for uniformity among data structures.
|
inline |
Return a const iterator for the short array list.
The iterator serves to provide a way to efficiently iterate over the elements of the short array list. It is more useful for a linked list type of data structure, but it is provided for uniformity among data structures.
ShortArrayList<T,localCapacity1,SizeType>& om::util::ShortArrayList< T, localCapacity, SizeType >::operator= | ( | const ShortArrayList< T, localCapacity2, SizeType > & | other | ) |