CObList类支持非唯一的CObject指针,并可顺次访问或通过指针值访问有序列表。CObList列表的行为类似于双向连结列表。CObList是非常有用的集合类族的代表,具有诊断转储的特性并且能够包含混合的指针。
基本介绍
- 外文名CObList
- 支持非唯一的CObject指针
- 属于非常有用的集合类族的代表
- 特性诊断转储
CObList
CObject |
└CObList |
POSITION类型的变数为列表的键。使用POSITION变数,既可以作为列表循环中的循环变数,也可以作为标记某个位置的标籤。不过,位置并不等同于索引。
在列表头、列表尾以及在指定的位置上,进行插入元素都非常便捷。一个顺序的搜寻对于通过值或索引查找元素非常必要。如果这种列表很长,那幺搜寻速度将非常慢。
CObList引入了IMPLEMENT_SERIAL宏,从而支持其元素的串列化与转储。如果一系列的CObject指针被存储于档案档案中,那幺使用载入插入操作符或使用Serialize成员函式,每个CObject元素都将被串列化。如果需要转储列表中个别CObject元素的转储,那幺必须将转储内容的深度设定为1或更大。
当删除了对象或其元素,那幺被删除的仅仅是CObject指针,而不是它们参考的对象。
可以从CObList派生自己的类。新的列表类,用于包含从CObject派生对象的指针,它将增添新的数据成员及新的成员函式。注意,结果列表并不是严格的类型安全,其原因在于它允许插入任何的CObject指针。
注意
如果你希望串列化列表,那幺在你自己的类的执行过程中必须使用IMPLEMENT_SERIAL宏。
如果要了解有关使用CObList的更多信息,请参阅在线上文档“Visual C++程式设计师指南”中的“收集”。
下面列出了同CObList类的成员函式较为相似的类
·CPtrList
·CStringList
#include <afxcoll.h>
请参阅CStringList, CPtrList
CObList类的成员
构造函式
CObList | 为CObject指针构造一个空的列表 |
首或尾访问
GetHead | 返回列表中的首元素(列表不能为空) |
GetTail | 返回列表中的尾元素(列表不能为空) |
操作
RemoveHead | 从列表首删除元素 |
RemoveTail | 从列表尾删除元素 |
AddHead | 在列表首增加一个元素或另一个列表的所有元素(并产生一个新的列表首) |
AddTail | 在列表尾增加一个元素或另一个列表的所有元素(并产生一个新的列表尾) |
RemoveAll | 删除列表中所有的元素 |
循环
GetHeadPosition | 返回列表中首元素的位置 |
GetTailPosition | 返回列表中尾元素的位置 |
GetNext | 获取循环遍历中的下一个元素 |
GetPrev | 获取循环遍历中的前一个元素 |
检索/修改
GetAt | 获取指定位置的元素 |
SetAt | 设定指定位置的元素 |
RemoveAt | 从列表中删除指定位置的元素 |
插入
InsertBefore | 在给定位置之前新插入一个元素 |
InsertAfter | 在给定位置之后新插入一个元素 |
搜寻
Find | 获取由指针值指定元素的位置 |
FindIndex | 获取由以零尾基数索引指定元素的位置 |
状态
GetCount | 返回列表中的元素数 |
IsEmpty | 测试是否为空列表(没有元素) |