CObArray

CObject
 └CObArray

CObArray类支持CObject指针数组。这些对象数组近似于C中的数组,但不同的是它们可以动态地增减。
数组索引总是开始于位置0。你可以决定是否固定数组上界,或当增加元素超过了当前边界后,是否允许数组扩展。内存分配给数组上界的邻近值,而不管某些元素是否为空。
在Win32下,CObArray对象的大小仅仅受限于有效的内存大小。
与C数组类似,CObArray索引元素的访问时间是一个常量,与数组的大小独立。CObArray对象引入了IMPLEMENT_SERIAL宏,以支持其元素的串行化与转储。若CObject指针数组存储在一个档案文件中,那么或者使用加载插入(<<)操作符,或者使用Serialize成员函数,每个CObject元素都将按其索引依次被串行化。
如果要了解有关实现数组中个别CObject元素的转储,那么必须将CDumpContext 对象的深度设置为1或更大。
当CObArray 对象或其元素被删除,被删除的仅仅是CObject指针,而不是它们参考的对象。
注意:
在使用数组之前,请使用SetSize来建立数组的大小,并为其分配内存。如果没有使用SetSize,那么向数组中增加元素将导致它频繁地重新分配和拷贝。频繁地重新分配和拷贝是没有效率的,并将产生内存碎片。
数组类的派生类似于列表的派生。如果需要指定用途列表类的派生,请参阅联机文档“Visual C++程序员指南”中的“收集”。
注意:如果希望串行化数组,那么在派生类的执行过程中,必须使用IMPLEMENT_SERIAL宏。
#include <afxcoll.h>

请参阅:
CStringArray, CPtrArray, CByteArray, CWordArray, CDWordArray

CObArray类的成员

构造函数
CObArray为CObject指针构造空数组

约束
GetSize获取数组中的元素数
GetUpperBound返回最大有效索引
SetSize设置数组中包含的元素数

操作
FreeExtra释放当前数组上界以上的所有没有使用的内存
RemoveAll删除数组中所有元素

元素访问
GetAt返回给定索引的值
SetAt设定给定索引的值;并且数组不允许扩展
ElementAt返回数组内部元素指针的临时参考
GetData允许访问数组中的元素,它不能为NULL

扩展数组
SetAtGrow设置给定索引的值,如果需要就扩展数组
Add在数组尾部增加元素,如果需要就扩展数组
Append为该数组附加另一个数组,如果需要就扩展数组
Copy拷贝另一个数组到该数组中,如果需要就扩展数组

插入/删除
InsertAt在指定索引处插入一个元素(或在另一个数组中插入所有元素)
RemoveAt删除指定索引处的数组元素

操作
operator []设置或获取指定索引处的元素