MFC数组类

MFC定义了数组模板类CArray,并针对各种常用变量类型定义了CByteArrayCArrayCUIntArrayCDArrayCStringArrayCObArrayCPtrArray。详见下表:

数组类

变量类型

变量数值范围

头文件

CArray

通过模板类的参数类型设定各种类型

Afxtempl.h

CByteArray

8位无符号整数BYTE类型

0—255

Afxcoll.h

CArray

16位无符号整数WORD类型

0—65535

Afxcoll.h

CDArray

32位无符号整数DWORD类型

0—4294967295

Afxcoll.h

CUIntArray

32位无符号整数UINT类型

0—4294967295

Afxcoll.h

CStringArray

CString字符串string字符串

Afxcoll.h

CObArray

CObject类及其派生类

Afxcoll.h

CPtrArray

void*类型指针

Afxcoll.h

MFC数组类使用方法基本相同,下面分别以CArrayCByteArray为例演示说明数组类的使用方法。

CArray

1 定义

CArray <CPoint,CPoint&> m_Array;

该语句定义一个CArray数组对象,模板类CArray有两个参数,第一个参数为数组元素的类型,该例中是CPoint,即m_ArrayCPoint数组;第二个参数为引用类型,一般有两种选择,一种选择与第一个参数类型相同,它意味着数组对象作为参数传递时,传递的是数组对象。第二种选择是第一个参数类型的引用,它意味着数组对象作为参数传递时,传递的是数组对象的指针。因此,尤其对于较复杂的数组结构类型,推荐使用引用传递,节约内存同时加快程序运行速度,正如本例使用的是CPoint&

SetSize

SetSize函数设定数组的大小,该函数有两个参数,第一个参数设定数组的大小;第二个参数设定数组增长时内存分配的大小,缺省值是-1,使用缺省值可以保证内存分配得更加合理。本例中第二个参数是10,意即增加一个数组元素会分配10个元素大小的内存供数组使用。
  您可以随时使用SetSize函数设定数组的大小,如果第一个参数值小于数组已有成员数量,多于第一个参数值的成员将被截去并释放相应内存。
  在使用CArray数组前,最好先使用SetSize确定其大小并申请存储空间。如果不这样做,向数组中增加元素时,需要不断地移动和拷贝元素造成运行的低效率和内存碎块。

Add

Add函数添加数组元素。

GetSize

GetSize返回数组元素的数目。

GetAt

例:CPoint pt; pt=m_Array.GetAt(0);

CByteArray

写入

CByteArray arry;

arry.Add(0x41);

读出

unsigned charx = (unsigned char)arry[0];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值