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
の 2 つの要素の等値関数を定義する手段が提供されます。 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
オブジェクトへのポインターを返します。
解説
src によって参照される CSimpleArray
オブジェクトのすべての要素を現在の配列オブジェクトにコピーし、既存のすべてのデータを置き換えます。
例
// 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 RemoveAtint nIndex);
パラメーター
nIndex
削除する要素を指すインデックス。
戻り値
要素が削除された場合は TRUE、インデックスが無効な場合は FALSE を返します。
解説
要素が削除されると、配列内の残りの要素は、空の領域を埋めるために番号が付け直されます。
CSimpleArray::SetAtIndex
指定された要素を配列に設定します。
BOOL SetAtIndex(
int nIndex,
const T& t);
パラメーター
nIndex
変更する要素のインデックス。
t
指定された要素に代入する値。
戻り値
成功した場合は TRUE、インデックスが無効な場合は FALSE を返します。