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,足以处理大多数数据类型。 如果要移动的对象包含指向自己成员的指针,则需要重写此静态函数。