MFC的数组类支持的数组类似于C++中的常规数组,可以存放任何数据类型。C++的常规数组在使用前必须将其定义成能够容纳所有可能需要的元素,而MFC数组类创建的对象可以根据需要动态地增大或减小,数组的起始下标是0,而上限可以是固定的,也可以随着元素的增加而增加,数组在内存中的地址仍然是连续分配的。
  MFC定义了数组模板类CArray,并针对各种常用变量类型定义了CByteArray,CWordArray,CUIntArray,CDWordArray,CStringArray,CObArray,CPtrArray。详见下表:
数组类 变量类型 变量数值范围 头文件
CArray 通过模板类的参数类型设定各种类型   Afxtempl.h
CByteArray 8位无符号整数 BYTE类型 0—255 Afxcoll.h
CWordArray 16位无符号整数 WORD类型 0—65535 Afxcoll.h
CDWordArray 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

边界  
  GetSize()   返回数组大小  
  GetUpperBound()   返回数组上界  
  SetSize()   设设置数组长度  
   
  操作  
  FreeExtra()   释放已申请但没有使用的多余内容  
  RemoveAll()   清空数组     
    
  元素访问  
  GetAt()   返回数组中指定位置的值  
  SetAt()   设置数组中指定位置的值  
   
  ElementAt   返回数组中指定位置的临时引用  
  GetData   以指针形式返回数组  
   
  增长数组  
  SetAtGrow   设置数组的增长幅度    
  Add   向数组添加元素  
  Append   将其它数组添加到本数组  
  Copy   将其它数组复制到本数组   
    

插入删除   
InsertAt   向数组插入元素或其它数组   
RemoveAt   从数组中删除元素   
    
 操作符   
 operator   []   支持以数组方式访问  
   
  CByteArray   ba;  
  ba.Add(66);  
  ba.Add(65);  
  ba.InsertAt(1,69);  
   
  ba.RemoveAt(2);  
  BYTE   i   =   ba[1];  
  ba.RemoveAll();  

posted on 2009-05-02 01:18  陈广强  阅读(955)  评论(0编辑  收藏  举报