CStringElementTraits クラス

このクラスにより、CString オブジェクトを格納するコレクション クラスで使用される静的関数が提供されます。

構文

template <typename T>
class CStringElementTraits

パラメーター

T
コレクションに保存されるデータの型。

メンバー

パブリック typedef

名前 説明
CStringElementTraits::INARGTYPE コレクション クラス オブジェクトに要素を追加するために使用するデータ型。
CStringElementTraits::OUTARGTYPE コレクション クラス オブジェクトから要素を取得するために使用するデータ型。

パブリック メソッド

名前 説明
CStringElementTraits::CompareElements (静的) 2 つの文字列要素が等しいかどうかを比較するには、この関数を呼び出します。
CStringElementTraits::CompareElementsOrdered (静的) 2 つの文字列要素を比較するには、この関数を呼び出します。
CStringElementTraits::CopyElements (静的) コレクション クラス オブジェクトに格納されている CString 要素をコピーするには、この関数を呼び出します。
CStringElementTraits::Hash (静的) 特定の文字列要素のハッシュ値を計算するには、この関数を呼び出します。
CStringElementTraits::RelocateElements (静的) コレクション クラス オブジェクトに格納されている CString 要素を再配置するには、この関数を呼び出します。

解説

このクラスでは、文字列をコピー、移動、比較するためのハッシュ値を作成するための静的関数が提供されます。 これらの関数は、コレクション クラスを使用して文字列ベースのデータを格納する場合に便利です。 大文字と小文字を区別しない比較が必要な場合は、CStringElementTraitsI を使用します。 文字列オブジェクトが参照として処理される場合は、CStringRefElementTraits を使用します。

詳細については、「ATL コレクション クラス」を参照してください。

必要条件

ヘッダー: cstringt.h

CStringElementTraits::CompareElements

2 つの文字列要素が等しいかどうかを比較するには、この静的関数を呼び出します。

static bool CompareElements(INARGTYPE str1, INARGTYPE str2);

パラメーター

str1
最初の文字列要素。

str2
2 つ目の文字列要素。

戻り値

要素が等しい場合は true、それ以外の場合は false を返します。

CStringElementTraits::CompareElementsOrdered

2 つの文字列要素を比較するには、この静的関数を呼び出します。

static int CompareElementsOrdered(INARGTYPE str1, INARGTYPE str2);

パラメーター

str1
最初の文字列要素。

str2
2 つ目の文字列要素。

戻り値

文字列が同一の場合は 0、str1str2 未満の場合は < 0、str1str2 より大きい場合は > 0 です。 この比較を実行するには、CStringT::Compare メソッドが使用されます。

CStringElementTraits::CopyElements

コレクション クラス オブジェクトに格納されている CString 要素をコピーするには、この静的関数を呼び出します。

static void CopyElements(
    T* pDest,
    const T* pSrc,
    size_t nElements);

パラメーター

pDest
コピーされたデータを受け取る最初の要素へのポインター。

pSrc
コピーする最初の要素へのポインター。

nElements
コピーする要素の数。

解説

コピー元要素とコピー先要素が重なることはできません。

CStringElementTraits::Hash

特定の文字列要素のハッシュ値を計算するには、この静的関数を呼び出します。

static ULONG Hash(INARGTYPE str);

パラメーター

str
文字列要素。

戻り値

文字列の内容を使用して計算されたハッシュ値を返します。

CStringElementTraits::INARGTYPE

コレクション クラス オブジェクトに要素を追加するために使用するデータ型。

typedef T::PCXSTR INARGTYPE;

CStringElementTraits::OUTARGTYPE

コレクション クラス オブジェクトから要素を取得するために使用するデータ型。

typedef T& OUTARGTYPE;

CStringElementTraits::RelocateElements

コレクション クラス オブジェクトに格納されている CString 要素を再配置するには、この静的関数を呼び出します。

static void RelocateElements(
    T* pDest,
    T* pSrc,
    size_t nElements);

パラメーター

pDest
再配置されたデータを受け取る最初の要素へのポインター。

pSrc
再配置する最初の要素へのポインター。

nElements
再配置する要素の数。

解説

このメソッドでは、ほとんどのデータ型に十分な memmove が呼び出されます。 移動されるオブジェクトに独自のメンバーへのポインターが含まれる場合、この静的関数はオーバーライドする必要があります。

関連項目

CElementTraitsBase クラス
CStringElementTraitsI クラス
クラスの概要