CSimpleArray 類別
這個類別提供管理簡單數位的方法。
語法
template <class T, class TEqual = CSimpleArrayEqualHelper<T>>
class CSimpleArray
參數
T
要儲存在陣列中的數據型別。
TEqual
特徵物件,定義 T 型別元素的相等測試。
成員
公用建構函式
名稱 | 描述 |
---|---|
CSimpleArray::CSimpleArray | 簡單數位建構函式。 |
CSimpleArray::~CSimpleArray | 簡單數位的解構函式。 |
公用方法
名稱 | 描述 |
---|---|
CSimpleArray::Add | 將新專案加入至陣列。 |
CSimpleArray::Find | 尋找陣列中的專案。 |
CSimpleArray::GetData | 傳回儲存在陣列中的數據指標。 |
CSimpleArray::GetSize | 傳回儲存在陣列中的項目數目。 |
CSimpleArray::Remove | 從陣列中移除指定的專案。 |
CSimpleArray::RemoveAll | 從陣列中移除所有元素。 |
CSimpleArray::RemoveAt | 從陣列中移除指定的專案。 |
CSimpleArray::SetAtIndex | 設定陣列中的指定專案。 |
公用運算子
名稱 | 描述 |
---|---|
CSimpleArray::operator[] | 從陣列中擷取項目。 |
CSimpleArray::operator = | 指派運算子。 |
備註
CSimpleArray
提供方法來建立和管理任何指定型別 T
的簡單陣列。
參數 TEqual
會為 類型的 T
兩個項目定義相等函式的方法。 藉由建立類似 CSimpleArrayEqualHelper 的類別,就可以改變任何指定數位的相等測試行為。 例如,處理指標陣列時,根據指標參考的值,定義相等可能很有用。 默認實作會 利用 operator=()。
CSimpleArray
和 CSimpleMap 都是針對少數專案所設計。 當陣列包含大量元素時,應該使用 CAtlArray 和 CAtlMap 。
需求
標頭: atlsimpcoll.h
範例
// 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
將新專案加入至陣列。
BOOL Add(const T& t);
參數
t
要加入至陣列的專案。
傳回值
如果專案成功加入陣列,則傳回 TRUE,否則傳回 FALSE。
範例
// Create an array of integers and add some elements
CSimpleArray<int> iMyArray;
for (int i = 0; i < 10; i++)
iMyArray.Add(i);
CSimpleArray::CSimpleArray
數位物件的建構函式。
CSimpleArray(const CSimpleArray<T, TEqual>& src);
CSimpleArray();
參數
src
現有的 CSimpleArray
物件。
備註
初始化數據成員、建立新的空白 CSimpleArray
物件或現有 CSimpleArray
對象的複本。
CSimpleArray::~CSimpleArray
解構函式。
~CSimpleArray();
備註
釋放所有已配置的資源。
CSimpleArray::Find
尋找陣列中的專案。
int Find(const T& t) const;
參數
t
要搜尋的專案。
傳回值
傳回找到之專案的索引,如果找不到專案,則傳回 -1。
範例
// 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
傳回儲存在陣列中的數據指標。
T* GetData() const;
傳回值
傳回數位中數據的指標。
CSimpleArray::GetSize
傳回儲存在陣列中的項目數目。
int GetSize() const;
傳回值
傳回儲存在陣列中的項目數目。
CSimpleArray::operator []
從陣列中擷取項目。
T& operator[](int nindex);
參數
nIndex
專案索引。
傳回值
傳回 nIndex 所參考之陣列的專案。
範例
// 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 =
指派運算子。
CSimpleArray<T, TEqual>
& operator=(
const CSimpleArray<T, TEqual>& src);
參數
src
要複製的陣列。
傳回值
傳回已更新 CSimpleArray
物件的指標。
備註
將所有專案從 CSimpleArray
src 所參考的物件複製到目前的數位物件,並取代所有現有的數據。
範例
// 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
從陣列中移除指定的專案。
BOOL Remove(const T& t);
參數
t
要從陣列中移除的專案。
傳回值
如果找到並移除專案,則傳回 TRUE,否則傳回 FALSE。
備註
拿掉專案時,會重新編號陣列中的其餘元素,以填滿空白空間。
CSimpleArray::RemoveAll
從陣列中移除所有元素。
void RemoveAll();
備註
拿掉目前儲存在陣列中的所有專案。
CSimpleArray::RemoveAt
從陣列中移除指定的專案。
BOOL RemoveAt(int nIndex);
參數
nIndex
指向要移除之元素的索引。
傳回值
如果移除專案,則會傳回 TRUE;如果索引無效,則傳回 FALSE。
備註
拿掉專案時,會重新編號陣列中的其餘元素,以填滿空白空間。
CSimpleArray::SetAtIndex
在陣列設定指定的專案。
BOOL SetAtIndex(
int nIndex,
const T& t);
參數
nIndex
要變更之專案的索引。
t
要指派給指定項目的值。
傳回值
如果成功,則傳回 TRUE;如果索引無效,則傳回 FALSE。