CArray类学习

 
CArray 类学习
2007-7-27
CArray 类的申明保存在头文件 afxtempl.h 中。 CArray 类继承于 CObject 类。
在使用一个数组前,使用 SetSize 来建立数组的大小和为它分配内存,如果不使用 SetSize ,则为数组添加元素就会引起频繁的分配内存和拷贝,容易导致内存碎片。
构造函数:
CArray();
构造一个空数组,数组一次可扩充一个元素。
 
属性函数:
int GetSize() const;
返回数组的大小,索引是基于 0 ,所以索引的长度比数组大小小 1
 
int GetUpperBound() const;
返回数组上限,比数组长度小 1
 
void SetSize(int nNewSize , int nGrowBy = -1);
throw(CMemoryException);
建立一个空的或者已存在数组的大小,如有必要分配内存。如果数组新定义的大小小于原来的大小,则数组内容会被截断,并释放内存。
 
操作函数:
void FreeExtra();
释放数组扩展时分配的额外的内存空间,但是不影响数组的大小和上界,因为是 CArray 对象,所以有记录数组大小和上限的成员变量信息,而实际在使用数组时并没有申请那么多的内存空间。
 
void RemoveAll();
从数组中移除所有的元素,如果数组为空,该函数也起作用。
 
元素访问函数:
TYPE GetAt(int nIndex) const;
获得 nIndex 索引位置上的数组元素值,返回为 TYPE 类型。 nIndex 0 和数组上限之间的值。
 
void SetAt(int nIndex , ARG_TYPE newElement);
nIndex 位置设定新的 newElement 值。该函数不能在数组中添加元素,只能修改。
 
TYPE& ElementAt(int nIndex);
返回 nIndex 位置数据元素的参考
 
const TYPE *GetData() const;
返回指向当前数组元素的指针。使用此函数获得当前数组元素的直接访问能力。如果元素无效则返回 null
 
增加数组长度函数:
void SetAtGrow(int nIndex , ARG_TYPE newElement);
nIndex 位置设置数组元素 newElement 。如果必要数组自动增长。
 
int Add(ARG_TYPE newElement);
在数组的末尾增加一个数组元素,数组长度加 1 。如果之前使用 SetSize nGrowBy 大于 1 ,则内存按照 nGrowBy 增加。函数返回 newElement 的数组元素索引。
 
int Append(const CArray& src);
将同类型的一个数组 A 附加到本数组的尾部,返回 A 第一数组元素在本数组的索引。
 
void Copy(const CArray& src);
src 元素拷贝到本数组对象中。
 
void InsertAt(int nIndex , ARG_TYPE newElement , int nCount = 1);
throw(CMemoryException);
void InsertAt(int nStartIndex , CArray* pNewArray);
throw(CMemoryException);
在指定的 nIndex 或者 nStartIndex 位置插入 nCount newElement 数组元素或者 pNewArray 数组。
 
void RemoveAt(int nIndex , int nCount = 1);
从指定的 nIndex 位置开始,删除 nCount 个数组元素,所有元素下移,并且减少数组的上限,但不释放内存。
 
 
 
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值