CSimpleArray Class
This class provides methods for managing a simple array.
Syntax
template <class T, class TEqual = CSimpleArrayEqualHelper<T>>
class CSimpleArray
Parameters
T
The type of data to store in the array.
TEqual
A trait object, defining the equality test for elements of type T.
Members
Public Constructors
Name | Description |
---|---|
CSimpleArray::CSimpleArray | The constructor for the simple array. |
CSimpleArray::~CSimpleArray | The destructor for the simple array. |
Public Methods
Name | Description |
---|---|
CSimpleArray::Add | Adds a new element to the array. |
CSimpleArray::Find | Finds an element in the array. |
CSimpleArray::GetData | Returns a pointer to the data stored in the array. |
CSimpleArray::GetSize | Returns the number of elements stored in the array. |
CSimpleArray::Remove | Removes a given element from the array. |
CSimpleArray::RemoveAll | Removes all elements from the array. |
CSimpleArray::RemoveAt | Removes the specified element from the array. |
CSimpleArray::SetAtIndex | Sets the specified element in the array. |
Public Operators
Name | Description |
---|---|
CSimpleArray::operator[] | Retrieves an element from the array. |
CSimpleArray::operator = | Assignment operator. |
Remarks
CSimpleArray
provides methods for creating and managing a simple array, of any given type T
.
The parameter TEqual
provides a means of defining an equality function for two elements of type T
. By creating a class similar to CSimpleArrayEqualHelper, it is possible to alter the behavior of the equality test for any given array. For example, when dealing with an array of pointers, it may be useful to define the equality as depending on the values the pointers reference. The default implementation utilizes operator=().
Both CSimpleArray
and CSimpleMap are designed for a small number of elements. CAtlArray and CAtlMap should be used when the array contains a large number of elements.
Requirements
Header: atlsimpcoll.h
Example
// Create an array of integers
CSimpleArray<int> iArray;
// Create an array of char pointers
// and use a new equality function
CSimpleArray<char *, MyEqualityEqualHelper<char *> > cMyArray;
CSimpleArray::Add
Adds a new element to the array.
BOOL Add(const T& t);
Parameters
t
The element to add to the array.
Return Value
Returns TRUE if the element is successfully added to the array, FALSE otherwise.
Example
// Create an array of integers and add some elements
CSimpleArray<int> iMyArray;
for (int i = 0; i < 10; i++)
iMyArray.Add(i);
CSimpleArray::CSimpleArray
The constructor for the array object.
CSimpleArray(const CSimpleArray<T, TEqual>& src);
CSimpleArray();
Parameters
src
An existing CSimpleArray
object.
Remarks
Initializes the data members, creating a new empty CSimpleArray
object, or a copy of an existing CSimpleArray
object.
CSimpleArray::~CSimpleArray
The destructor.
~CSimpleArray();
Remarks
Frees all allocated resources.
CSimpleArray::Find
Finds an element in the array.
int Find(const T& t) const;
Parameters
t
The element for which to search.
Return Value
Returns the index of the found element, or -1 if the element is not found.
Example
// Create an array of floats and search for a particular element
CSimpleArray<float> fMyArray;
for (int i = 0; i < 10; i++)
fMyArray.Add((float)i * 100);
int e = fMyArray.Find(200);
if (e == -1)
_tprintf_s(_T("Could not find element\n"));
else
_tprintf_s(_T("Found the element at location %d\n"), e);
CSimpleArray::GetData
Returns a pointer to the data stored in the array.
T* GetData() const;
Return Value
Returns a pointer to the data in the array.
CSimpleArray::GetSize
Returns the number of elements stored in the array.
int GetSize() const;
Return Value
Returns the number of elements stored in the array.
CSimpleArray::operator []
Retrieves an element from the array.
T& operator[](int nindex);
Parameters
nIndex
The element index.
Return Value
Returns the element of the array referenced by nIndex.
Example
// Create an array and display its contents
CSimpleArray<int> iMySampleArray;
for (int i = 0; i < 10; i++)
iMySampleArray.Add(i);
for (int i = 0; i < iMySampleArray.GetSize(); i++)
_tprintf_s(_T("Array index %d contains %d\n"), i, iMySampleArray[i]);
CSimpleArray::operator =
Assignment operator.
CSimpleArray<T, TEqual>
& operator=(
const CSimpleArray<T, TEqual>& src);
Parameters
src
The array to copy.
Return Value
Returns a pointer to the updated CSimpleArray
object.
Remarks
Copies all elements from the CSimpleArray
object referenced by src into the current array object, replacing all existing data.
Example
// Create an array of chars and copy it to a second array
CSimpleArray<char> cMyArray1;
cMyArray1.Add('a');
CSimpleArray<char> cMyArray2;
cMyArray2 = cMyArray1;
ATLASSERT(cMyArray2[0] == 'a');
CSimpleArray::Remove
Removes a given element from the array.
BOOL Remove(const T& t);
Parameters
t
The element to remove from the array.
Return Value
Returns TRUE if the element is found and removed, FALSE otherwise.
Remarks
When an element is removed, the remaining elements in the array are renumbered to fill the empty space.
CSimpleArray::RemoveAll
Removes all elements from the array.
void RemoveAll();
Remarks
Removes all elements currently stored in the array.
CSimpleArray::RemoveAt
Removes the specified element from the array.
BOOL RemoveAtint nIndex);
Parameters
nIndex
Index pointing to the element to remove.
Return Value
Returns TRUE if the element was removed, FALSE if the index was invalid.
Remarks
When an element is removed, the remaining elements in the array are renumbered to fill the empty space.
CSimpleArray::SetAtIndex
Set the specified element in the array.
BOOL SetAtIndex(
int nIndex,
const T& t);
Parameters
nIndex
The index of the element to change.
t
The value to assign to the specified element.
Return Value
Returns TRUE if successful, FALSE if the index was not valid.