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