c++ CArray函数中GetSize()、GetUpperBound()、SetSize、GetAt、SetAt、GetData、Add、void Copy( const CArray& src)

CArray属于MFC,是一个数组模板类。MFC的数组类支持的数组类似于常规数组,可以存放任何数据类型。常规数组在使用前必须将其定义成能够容纳所有可能需要的元素,即先确定大小,而MFC数组类创建的对象可以根据需要动态地增大或减小,数组的起始下标是0,而上限可以是固定的,也可以随着元素的增加而增加,数组在内存中的地址仍然是连续分配的。但是声明一个carray数组必须是确定数组长度,可以之后随元素增加而增加。使用CArray要添加一个头文件#include <afxtempl.h>
  定义一个CArray数组对象CArray<int, int> arr;第一个参数为数组元素的类型,第二个参数为int类型,一般有两种选择,一种选择与第一个参数类型相同,它意味着数组对象作为参数传递时,传递的是数组对象。第二种选择是第一个参数类型的引用,它意味着数组对象作为参数传递时,传递的是数组对象的指针,这种方法效率更高。
  SetSize函数设定数组的大小,该函数有两个参数,第一个参数设定数组的大小;第二个参数设定数组增长时内存分配的大小,缺省值是-1,使用缺省值可以保证内存分配得更加合理。本例中第二个参数是n,意即增加一个数组元素会分配n个元素大小的内存供数组使用。 可以随时使用SetSize函数设定数组的大小,如果第一个参数值小于数组已有成员数量,多于第一个参数值的成员将被截去并释放相应内存。在使用CArray数组前,最好先使用SetSize确定其大小并申请存储空间。如果不这样做,向数组中增加元素时,需要不断地移动和拷贝元素造成运行的低效率和内存碎块。
  SetAt方法初始化数组元素,void SetAt( int n, ARG_TYPE newElement );将第n的元素的值设置成newElement.
一些基本函数:
CArray::GetSize
int GetSize( ) const;
取得当前数组元素个数.
CArray::GetUpperBound
int GetUpperBound( ) const;
最得最大的元素的索引,由于C的数组是从0开始,所以此函数的返回值比GetSize的返回值比 小.
CArray::SetSize
void SetSize( int nNewSize, int nGrowBy = -1 );
throw( CMemoryException );
设置数组的大小.
CArray::FreeExtra
void FreeExtra( );
释放未使用的空间.
CArray::RemoveAll
void RemoveAll( );
删除所有的元素.
CArray::GetAt
TYPE GetAt( int nIndex ) const;
根据索引(参数)取得某个数组元素的值.
CArray::SetAt
void SetAt( int nIndex, ARG_TYPE newElement );
将第nIndex的元素的值设置成newElement.
CArray::ElementAt
TYPE& ElementAt( int nIndex );
取得第nIndex个元素的引用.
CArray::GetData
const TYPE* GetData( ) const;
TYPE* GetData( );
取得静态数组指针.
void SetAtGrow( int nIndex, ARG_TYPE newElement );
throw( CMemoryException );
将第nIndex个元素设置成newElement,如果数组元素不够,会增加空间.
CArray::Add
int Add( ARG_TYPE newElement );
throw( CMemoryException );
增加一个元素.
CArray::Append
int Append( const CArray& src );
将另一个数组追加过来.
void Copy( const CArray& src );
复制数组,已经内容将会被覆盖.
CArray::InsertAt
void InsertAt( int nIndex, ARG_TYPE newElement, int nCount = 1 );
throw( CMemoryException );
void InsertAt( int nStartIndex, CArray* pNewArray );
throw( CMemoryException );
插入一个元素(或另一个数组)到数组.
CArray::RemoveAt
加粗样式void RemoveAt( int nIndex, int nCount = 1 );
删除另一个元素.
CArray::operator [ ]
TYPE& operator []( int nIndex );
TYPE operator []( int nIndex ) const;
通过索引设置或取得另一个元素.

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CArrayMFC(Microsoft Foundation Class)库的一个容器类,用于存储一组相同类型的元素。 以下是CArray的基本用法: 1. 包含头文件: ```cpp #include <afxtempl.h> ``` 2. 定义CArray对象: ```cpp CArray<数据类型, 数据类型&> 数组名; ``` 其,数据类型为要存储的元素类型,数据类型&为元素类型的引用类型,数组名为定义的数组的名称。 例如: ```cpp CArray<int, int&> myArray; ``` 3. 使用Add函数向数组添加元素: ```cpp myArray.Add(元素值); ``` 例如: ```cpp myArray.Add(1); myArray.Add(2); myArray.Add(3); ``` 4. 使用GetAt函数获取数组指定位置的元素值: ```cpp myArray.GetAt(位置); ``` 例如: ```cpp int num = myArray.GetAt(0); // 获取数组第一个元素的值 ``` 5. 使用SetAt函数设置数组指定位置的元素值: ```cpp myArray.SetAt(位置, 新元素值); ``` 例如: ```cpp myArray.SetAt(0, 10); // 将数组第一个元素的值修改为10 ``` 6. 使用GetSize函数获取数组元素的个数: ```cpp int size = myArray.GetSize(); ``` 例如: ```cpp int size = myArray.GetSize(); // 获取数组元素的个数 ``` 7. 使用RemoveAll函数清空数组的所有元素: ```cpp myArray.RemoveAll(); ``` 8. 使用RemoveAt函数删除数组指定位置的元素: ```cpp myArray.RemoveAt(位置); ``` 例如: ```cpp myArray.RemoveAt(0); // 删除数组第一个元素 ``` 以上就是CArray的基本用法。需要注意的是,CArrayMFC的类,只能在Windows平台上使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值