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=()。

CSimpleArrayCSimpleMap 都是为少量元素设计的。 当数组包含大量元素时,应使用 CAtlArrayCAtlMap

要求

标头: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。

另请参阅

类概述