C++存储数据结构之二CArray

函数简介
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;
通过索引设置或取得另一个元素.

使用实例
#include "afxtempl.h"

//...

CArray <int,int&>arDatas;//定义一个整数数组
arDatas.SetSize(5);//设置大小为五个元素
int iSize = arDatas.GetSize();//大小为5
int iUpperBound = arDatas.GetUpperBound();//最大索引为4

//下面演示三种方法设置取得值
//将索引为1的元素的值设置成3,并取得它
arDatas.SetAt(1,3);
int iData = arDatas.GetAt(1);
//将索引为2的元素的值设置成5,并取得它
arDatas[2] = 5;
iData = arDatas[2] ;
//将索引为3的元素的值设置成7,并取得它
int& iEle = arDatas[3] ;
iEle = 7 ;
iData = arDatas[3] ;

//增加一个元素8
arDatas.Add(8);
iData = arDatas[5];
//在索引1的元素处插入一个无素1
arDatas.InsertAt(1,1);
iData = arDatas[1];
//删除索引为0的元素
arDatas.RemoveAt(0);

//取得int*指针,出于速度考虑
int* pData = arDatas.GetData();
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值