CStringElementTraits 类

此类提供集合类存储 CString 对象所用的静态函数。

语法

template <typename T>
class CStringElementTraits

参数

T
要存储在集合中的数据类型。

成员

公共 Typedef

名称 描述
CStringElementTraits::INARGTYPE 用于将元素添加到集合类对象的数据类型。
CStringElementTraits::OUTARGTYPE 用于从集合类对象中检索元素的数据类型。

公共方法

名称 描述
CStringElementTraits::CompareElements (静态)调用此函数来比较两个字符串元素是否相等。
CStringElementTraits::CompareElementsOrdered (静态)调用此函数来比较两个字符串元素。
CStringElementTraits::CopyElements (静态)调用此函数以复制存储在集合类对象中的 CString 元素。
CStringElementTraits::Hash (静态)调用此函数来计算给定字符串元素的哈希值。
CStringElementTraits::RelocateElements (静态)调用此函数以重定位存储在集合类对象中的 CString 元素。

备注

此类提供用于复制、移动和比较字符串和创建哈希值的静态函数。 使用集合类存储基于字符串的数据时,这些函数非常有用。 如果需要进行不区分大小写的比较,请使用 CStringElementTraitsI。 要将字符串对象作为引用进行处理时,请使用 CStringRefElementTraits

有关详细信息,请参阅 ATL 集合类

要求

标头:cstringt.h

CStringElementTraits::CompareElements

调用此静态函数可比较两个字符串元素是否相等。

static bool CompareElements(INARGTYPE str1, INARGTYPE str2);

参数

str1
第一个字符串元素。

str2
第二个字符串元素。

返回值

如果元素相等,则返回 true;否则返回 false。

CStringElementTraits::CompareElementsOrdered

调用此静态函数可比较两个字符串元素。

static int CompareElementsOrdered(INARGTYPE str1, INARGTYPE str2);

参数

str1
第一个字符串元素。

str2
第二个字符串元素。

返回值

如果字符串相同,则为零;如果 str1 小于 str2,则 < 0;如果 str1 大于 str2,则 > 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 类
类概述